package com.edulify.modules.sitemap; import java.io.File; import org.apache.commons.io.FileUtils; import org.fest.assertions.Assertions; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import com.redfin.sitemapgenerator.WebSitemapGenerator; import play.Application; import play.test.Helpers; public class AnnotationUrlProviderTest { private static final File baseDir = new File("/tmp"); private static Application application; @BeforeClass public static void startApp() { application = Helpers.fakeApplication(); Helpers.start(application); } @Test public void should_generate_sitemap_file() throws Exception { WebSitemapGenerator generator = new WebSitemapGenerator("http://localhost:9000", baseDir); AnnotationUrlProvider provider = application.injector().instanceOf(AnnotationUrlProvider.class); provider.addUrlsTo(generator); generator.write(); Assertions.assertThat(new File(baseDir, "sitemap.xml")).exists(); } @Test public void should_generate_sitemap_with_url_for_annotated_action() throws Exception { WebSitemapGenerator generator = new WebSitemapGenerator("http://localhost:9000", baseDir); AnnotationUrlProvider provider = application.injector().instanceOf(AnnotationUrlProvider.class); provider.addUrlsTo(generator); generator.write(); String content = FileUtils.readFileToString(new File(baseDir, "sitemap.xml")); Assertions.assertThat(content).contains("<loc>http://localhost:9000/index</loc>"); Assertions.assertThat(content).contains("<changefreq>monthly</changefreq>"); Assertions.assertThat(content).contains("<priority>0.8</priority>"); } @AfterClass public static void stopApp() { Helpers.stop(application); new File(baseDir, "sitemap.xml").delete(); } }