package org.openlegacy.designtime.terminal.generators;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openlegacy.designtime.terminal.generators.support.CodeBasedDefinitionUtils;
import org.openlegacy.layout.PageDefinition;
import org.openlegacy.terminal.definitions.ScreenEntityDefinition;
import org.openlegacy.terminal.layout.support.DefaultScreenPageBuilder;
import org.openlegacy.test.utils.AssertUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import japa.parser.JavaParser;
import japa.parser.ast.CompilationUnit;
import java.io.ByteArrayOutputStream;
import javax.inject.Inject;
@ContextConfiguration("/test-designtime-context.xml")
@RunWith(SpringJUnit4ClassRunner.class)
public class HelpGeneratorTest {
@Inject
private HelpGenerator helpGenerator;
@Test
public void testGenerateHelp() throws Exception {
String javaSource = "/org/openlegacy/designtime/terminal/generators/mock/ScreenForPage.java.resource";
CompilationUnit compilationUnit = JavaParser.parse(getClass().getResourceAsStream(javaSource));
ScreenEntityDefinition screenDefinition = CodeBasedDefinitionUtils.getEntityDefinition(compilationUnit, null);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PageDefinition pageDefinition = new DefaultScreenPageBuilder().build(screenDefinition);
helpGenerator.generate(pageDefinition, baos);
byte[] expectedBytes = IOUtils.toByteArray(getClass().getResourceAsStream("ScreenForPageHelp.html.expected"));
AssertUtils.assertContent(expectedBytes, baos.toByteArray());
}
}