// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.utils.communication.http.writer; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; public class HttpWriterTest { private static String defaultTitle = "My Title"; private static String defaultHeader = "\n" + " \n" + " My Title\n" + " \n" + " \n" + "

My Title

\n"; private static String defaultFooter = " \n" + "\n"; @Test void testStructure() { HttpWriter writer = new HttpWriter(); String header = defaultHeader.replace(defaultTitle, "Untitled page"); assertEquals(header + defaultFooter, writer.toString()); } @Test void testTitle() { HttpWriter writer = new HttpWriter().addTitle(defaultTitle); assertEquals(defaultHeader + defaultFooter, writer.toString()); } @Test void testParagraph() { String paragraph = "This is a paragraph"; String paragraph2 = "More text"; HttpWriter writer = new HttpWriter().addTitle(defaultTitle).write(paragraph).write(paragraph2); String content = "

\n" + " " + paragraph + "\n" + "

\n" + "

\n" + " " + paragraph2 + "\n" + "

\n"; assertEquals(defaultHeader + content + defaultFooter, writer.toString()); } @Test void testLink() { String name = "My link"; String link = "/foo/bar?hmm"; HttpWriter writer = new HttpWriter().addTitle(defaultTitle).writeLink(name, link); String content = " " + name + "\n"; assertEquals(defaultHeader + content + defaultFooter, writer.toString()); } @Test void testErrors() { try { HttpWriter writer = new HttpWriter().addTitle(defaultTitle); writer.toString(); writer.write("foo"); assertTrue(false); } catch (IllegalStateException e) { } try { new HttpWriter().write("foo").addTitle("bar"); assertTrue(false); } catch (IllegalStateException e) { } } }