package org.oscm.app.openstack;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringWriter;
import java.security.cert.Certificate;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLPeerUnverifiedException;

public class MockHttpsURLConnection extends HttpsURLConnection {
    private String error;
    private String input;
	private String output;
    protected int responseCode;
    private StringWriter inputWriter = new StringWriter();

	public MockHttpsURLConnection(int responseCode, String output) {
		super(null);
        this.output = output;
        this.responseCode = responseCode;

	}

	@Override
	public String getCipherSuite() {
		// TODO 自動生成されたメソッド・スタブ
		return null;
	}

	@Override
	public Certificate[] getLocalCertificates() {
		// TODO 自動生成されたメソッド・スタブ
		return null;
	}

	@Override
	public Certificate[] getServerCertificates()
			throws SSLPeerUnverifiedException {
		// TODO 自動生成されたメソッド・スタブ
		return null;
	}

	@Override
	public void disconnect() {
		// TODO 自動生成されたメソッド・スタブ

	}

	@Override
	public boolean usingProxy() {
		// TODO 自動生成されたメソッド・スタブ
		return false;
	}

	@Override
	public void connect() throws IOException {
		// TODO 自動生成されたメソッド・スタブ

	}
   @Override
    public InputStream getInputStream() throws IOException {
        connect();
        if (output == null) {
            output = "";
        }
        return new ByteArrayInputStream(output.getBytes());
    }

    @Override
    public InputStream getErrorStream() {
        if (error == null) {
            error = "";
        }
        return new ByteArrayInputStream(error.getBytes());
    }

    @Override
    public OutputStream getOutputStream() throws IOException {
        return new OutputStream() {
            @Override
            public void write(int b) throws IOException {
                inputWriter.write(b);
            }
        };
    }
    public String getInput() {
        if (!connected) {
            throw new IllegalStateException("Not connected");
        }
        return input;
    }

    @Override
    public int getResponseCode() throws IOException {
        return responseCode;
    }

    @Override
    public String getHeaderField(String name){
    	if((name).equals("X-Subject-Token")){
    		return "authToken";
        }
        return super.getHeaderField(name);
    }
}

@@ -748,34 +748,8 @@
 ) %7B%0A
-%09%09// TODO %E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%BB%E3%82%B9%E3%82%BF%E3%83%96%0A
 %09%09re
@@ -751,32 +751,32 @@
 %0A%09%09return null;%0A
+
 %09%7D%0A%0A%09@Override%0A%09
@@ -825,34 +825,8 @@
 ) %7B%0A
-%09%09// TODO %E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%BB%E3%82%B9%E3%82%BF%E3%83%96%0A
 %09%09re
@@ -940,34 +940,8 @@
 n %7B%0A
-%09%09// TODO %E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%BB%E3%82%B9%E3%82%BF%E3%83%96%0A
 %09%09re
@@ -997,34 +997,8 @@
 () %7B
-%0A%09%09// TODO %E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%BB%E3%82%B9%E3%82%BF%E3%83%96
 %0A%0A%09%7D
@@ -1045,34 +1045,8 @@
 ) %7B%0A
-%09%09// TODO %E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%BB%E3%82%B9%E3%82%BF%E3%83%96%0A
 %09%09re
@@ -1064,32 +1064,32 @@
 %0A%09%7D%0A%0A%09@Override%0A
+
 %09public void con
@@ -1119,34 +1119,8 @@
 on %7B
-%0A%09%09// TODO %E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%BB%E3%82%B9%E3%82%BF%E3%83%96
 %0A%0A%09%7D

delete japanese comments