package de.bht.fpa.strategypattern;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Before;
import org.junit.Test;
import de.bht.fpa.strategypattern.v3.AFormatter;
import de.bht.fpa.strategypattern.v3.BracesAndSemicolonFormatter;
import de.bht.fpa.strategypattern.v3.Editor;
import de.bht.fpa.strategypattern.v3.XMLFormatter;
public class EditorV3Test {
private final String cSharpHelloWorld = "using System;namespace HelloWorld { class Hello { static void Main() { System.Console.WriteLine(\"Hello World!\"); } }";
private final String cSharpHelloWorldFormatted = "using System;\nnamespace HelloWorld {\n class Hello {\n static void Main() {\n System.Console.WriteLine(\"Hello World!\");\n }\n }\n";
private final String javaHelloWorld = "public class HelloWorld { public static void main(String[] args) { System.out.println(\"Hello World!\"); } }";
private final String javaHelloWorldFormatted = "public class HelloWorld {\n public static void main(String[] args) {\n System.out.println(\"Hello World!\");\n }\n }\n";
private Editor bracesAndSemicolonEditor;
private Editor xmlEditor;
@Before
public void setUp() {
bracesAndSemicolonEditor = new Editor();
AFormatter formatter = new BracesAndSemicolonFormatter();
bracesAndSemicolonEditor.setFormatter(formatter);
xmlEditor = new Editor();
AFormatter xmlFormatter = new XMLFormatter();
xmlEditor.setFormatter(xmlFormatter);
}
@Test
public void shouldBreakOnOpenedCurlyBracesForCsharp() {
assertThat(bracesAndSemicolonEditor.format("{"), is("{\n"));
}
@Test
public void shouldBreakOnClosedCurlyBracesForCsharp() {
assertThat(bracesAndSemicolonEditor.format("}"), is("}\n"));
}
@Test
public void shouldBreakWithPrefixForCsharp() {
assertThat(bracesAndSemicolonEditor.format("{ölsaejkdsad"), is("{\nölsaejkdsad"));
}
@Test
public void shouldBreakOnSemicolonForCsharp() {
assertThat(bracesAndSemicolonEditor.format(";ölsaejkdsad"), is(";\nölsaejkdsad"));
}
@Test
public void shouldFormatHelloWorldForCsharp() {
String formatted = bracesAndSemicolonEditor.format(cSharpHelloWorld);
assertThat(formatted, is(cSharpHelloWorldFormatted));
System.out.println("VORHER:");
System.out.println(cSharpHelloWorld);
System.out.println();
System.out.println("NACHHER:");
System.out.println(formatted);
}
@Test
public void shouldFormatHelloWorldForJava() {
String formatted = bracesAndSemicolonEditor.format(javaHelloWorld);
assertThat(formatted, is(javaHelloWorldFormatted));
}
@Test
public void shouldBreakOnOpenedCurlyBracesForXML() {
assertThat(xmlEditor.format(">"), is(">\n"));
}
}