/*************************GO-LICENSE-START*********************************
* Copyright 2014 ThoughtWorks, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*************************GO-LICENSE-END***********************************/
package com.thoughtworks.studios.shine.net;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class StubGoURLRepository implements URLRepository {
private String baseDir;
private final String artifactRoot;
public StubGoURLRepository(String webserverRoot, String artifactRoot) {
this.artifactRoot = artifactRoot;
this.baseDir = webserverRoot;
}
public void registerStubContent(String url, String content) {
String baseFile = url.replaceFirst("http://localhost:3000/go", "");
File file = new File(baseDir, baseFile);
file.getParentFile().mkdirs();
try {
FileUtils.writeStringToFile(file, content);
} catch (IOException e) {
throw new RuntimeException("Could not write to file", e);
}
}
public void registerException(String url, IOException toThrow) {
throw new UnsupportedOperationException("Don't call me.");
}
public void registerArtifact(String path, String content) {
File file = new File(artifactRoot, path);
file.getParentFile().mkdirs();
try {
FileUtils.writeStringToFile(file, content);
} catch (IOException e) {
throw new RuntimeException("Could not write to file", e);
}
}
public String getBaseDir() {
return this.baseDir;
}
}