package br.com.caelum.stella.gateway;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
/**
* Classe utilitaria para os testes, apenas para criar paginas temporarias com
* os htmls para postagem de formularios..
*
* @author Alberto Pc
*
*/
public class HtmlViewerHelper {
private StringBuilder pagina = new StringBuilder("<html>");
/**
*
* @param functions
* ex: onload=document.all.algumacoisa
* @return
*/
public HtmlViewerHelper body(String functions) {
pagina.append("<body " + functions + ">");
return this;
}
public HtmlViewerHelper form(String action, String method, String name) {
pagina.append("<form method='" + method + "' action='" + action
+ "' name='" + name + "' id='" + name + "'>");
return this;
}
public HtmlViewerHelper createInputsHidden(Map<String, Object> fields) {
for (String key : fields.keySet()) {
pagina.append(generateInput(key, fields.get(key)));
}
return this;
}
private String generateInput(String name, Object value) {
return "<input type='hidden' name='" + name + "' value='" + value
+ "'/>";
}
/**
*
* @param path
* @throws RuntimeException caso não consiga gerar o arquivo.
*/
public void criarPaginaTemporariaNoDisco(String path) {
pagina.append("</form>").append("</body>").append("</html>");
File arquivo = new File(path);
FileOutputStream writer;
try {
writer = new FileOutputStream(arquivo);
writer.write(pagina.toString().getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
}