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();
}
}