use of org.broadleafcommerce.core.catalog.domain.CategorySiteMapGeneratorConfiguration in project BroadleafCommerce by BroadleafCommerce.
the class CategorySiteMapGenerator method addSiteMapEntries.
@Override
public void addSiteMapEntries(SiteMapGeneratorConfiguration smgc, SiteMapBuilder siteMapBuilder) {
if (CategorySiteMapGeneratorConfiguration.class.isAssignableFrom(smgc.getClass())) {
CategorySiteMapGeneratorConfiguration categorySMGC = (CategorySiteMapGeneratorConfiguration) smgc;
// Recursively construct the category SiteMap URLs
Long rootCategoryId = categorySMGC.getRootCategory().getId();
Category rootCategory = categoryDao.readCategoryById(rootCategoryId);
addCategorySiteMapEntries(rootCategory, 0, categorySMGC, siteMapBuilder);
}
}
use of org.broadleafcommerce.core.catalog.domain.CategorySiteMapGeneratorConfiguration in project BroadleafCommerce by BroadleafCommerce.
the class CategorySiteMapGeneratorTest method testCategorySiteMapGenerator.
@Test
public void testCategorySiteMapGenerator() throws SiteMapException, IOException {
Category c1 = new CategoryImpl();
c1.setUrl("/");
c1.setId(1l);
Category c2 = new CategoryImpl();
c2.setUrl("/hot-sauces");
c2.setId(2l);
CategoryMediaXref cmXref1 = new CategoryMediaXrefImpl();
Media m1 = new MediaImpl();
m1.setUrl("/img/hot-sauce-img1.png");
cmXref1.setCategory(c2);
cmXref1.setMedia(m1);
c2.getCategoryMediaXref().put("image1", cmXref1);
CategoryMediaXref cmXref2 = new CategoryMediaXrefImpl();
Media m2 = new MediaImpl();
m2.setUrl("/img/hot-sauce-img2.png");
cmXref2.setCategory(c2);
cmXref2.setMedia(m2);
c2.getCategoryMediaXref().put("image2", cmXref2);
Category c3 = new CategoryImpl();
c3.setUrl("merchandise");
c3.setId(3l);
Category c4 = new CategoryImpl();
c4.setUrl("/clearance");
c4.setId(4l);
Category c5 = new CategoryImpl();
c5.setUrl("/mens");
c5.setId(5l);
Category c6 = new CategoryImpl();
c6.setUrl("/womens");
c6.setId(6l);
List<Category> merchandiseSubcategories = new ArrayList<Category>();
merchandiseSubcategories.add(c5);
merchandiseSubcategories.add(c6);
CategoryDao categoryDao = EasyMock.createMock(CategoryDao.class);
EasyMock.expect(categoryDao.readActiveSubCategoriesByCategory(c1, 5, 0)).andReturn(new ArrayList<Category>()).atLeastOnce();
EasyMock.expect(categoryDao.readCategoryById(c1.getId())).andReturn(c1).atLeastOnce();
EasyMock.expect(categoryDao.readActiveSubCategoriesByCategory(c2, 5, 0)).andReturn(new ArrayList<Category>()).atLeastOnce();
EasyMock.expect(categoryDao.readCategoryById(c2.getId())).andReturn(c2).atLeastOnce();
EasyMock.expect(categoryDao.readActiveSubCategoriesByCategory(c3, 5, 0)).andReturn(merchandiseSubcategories).atLeastOnce();
EasyMock.expect(categoryDao.readCategoryById(c3.getId())).andReturn(c3).atLeastOnce();
EasyMock.expect(categoryDao.readActiveSubCategoriesByCategory(c4, 5, 0)).andReturn(new ArrayList<Category>()).atLeastOnce();
EasyMock.expect(categoryDao.readCategoryById(c4.getId())).andReturn(c4).atLeastOnce();
EasyMock.expect(categoryDao.readActiveSubCategoriesByCategory(c5, 5, 0)).andReturn(new ArrayList<Category>()).atLeastOnce();
EasyMock.expect(categoryDao.readCategoryById(c5.getId())).andReturn(c5).atLeastOnce();
EasyMock.expect(categoryDao.readActiveSubCategoriesByCategory(c6, 5, 0)).andReturn(new ArrayList<Category>()).atLeastOnce();
EasyMock.expect(categoryDao.readCategoryById(c6.getId())).andReturn(c6).atLeastOnce();
// Initialize the mocks
EasyMock.replay(categoryDao);
CategorySiteMapGenerator csmg = new CategorySiteMapGenerator(new MockEnvironment());
csmg.setCategoryDao(categoryDao);
csmg.setRowLimit(5);
List<SiteMapGeneratorConfiguration> smgcList = new ArrayList<SiteMapGeneratorConfiguration>();
CategorySiteMapGeneratorConfiguration c1CSMGC = new CategorySiteMapGeneratorConfigurationImpl();
c1CSMGC.setDisabled(false);
c1CSMGC.setSiteMapGeneratorType(SiteMapGeneratorType.CATEGORY);
c1CSMGC.setSiteMapChangeFreq(SiteMapChangeFreqType.HOURLY);
c1CSMGC.setSiteMapPriority(SiteMapPriorityType.POINT5);
c1CSMGC.setRootCategory(c1);
c1CSMGC.setStartingDepth(0);
c1CSMGC.setEndingDepth(1);
smgcList.add(c1CSMGC);
CategorySiteMapGeneratorConfiguration c2CSMGC = new CategorySiteMapGeneratorConfigurationImpl();
c2CSMGC.setDisabled(false);
c2CSMGC.setSiteMapGeneratorType(SiteMapGeneratorType.CATEGORY);
c2CSMGC.setSiteMapChangeFreq(SiteMapChangeFreqType.HOURLY);
c2CSMGC.setSiteMapPriority(SiteMapPriorityType.POINT5);
c2CSMGC.setRootCategory(c2);
c2CSMGC.setStartingDepth(0);
c2CSMGC.setEndingDepth(1);
smgcList.add(c2CSMGC);
CategorySiteMapGeneratorConfiguration c3CSMGC = new CategorySiteMapGeneratorConfigurationImpl();
c3CSMGC.setDisabled(false);
c3CSMGC.setSiteMapGeneratorType(SiteMapGeneratorType.CATEGORY);
c3CSMGC.setSiteMapChangeFreq(SiteMapChangeFreqType.HOURLY);
c3CSMGC.setSiteMapPriority(SiteMapPriorityType.POINT5);
c3CSMGC.setRootCategory(c3);
c3CSMGC.setStartingDepth(0);
c3CSMGC.setEndingDepth(1);
smgcList.add(c3CSMGC);
CategorySiteMapGeneratorConfiguration c4CSMGC = new CategorySiteMapGeneratorConfigurationImpl();
c4CSMGC.setDisabled(false);
c4CSMGC.setSiteMapGeneratorType(SiteMapGeneratorType.CATEGORY);
c4CSMGC.setSiteMapChangeFreq(SiteMapChangeFreqType.HOURLY);
c4CSMGC.setSiteMapPriority(SiteMapPriorityType.POINT5);
c4CSMGC.setRootCategory(c4);
c4CSMGC.setStartingDepth(0);
c4CSMGC.setEndingDepth(1);
smgcList.add(c4CSMGC);
testGenerator(smgcList, csmg, 2);
File file1 = fileService.getResource("/sitemap_index.xml");
File file2 = fileService.getResource("/sitemap1.xml");
File file3 = fileService.getResource("/sitemap2.xml");
File file4 = fileService.getResource("/sitemap3.xml");
compareFiles(file1, "src/test/resources/org/broadleafcommerce/sitemap/category/sitemap_index.xml");
compareFiles(file2, "src/test/resources/org/broadleafcommerce/sitemap/category/sitemap1.xml");
compareFiles(file3, "src/test/resources/org/broadleafcommerce/sitemap/category/sitemap2.xml");
compareFiles(file4, "src/test/resources/org/broadleafcommerce/sitemap/category/sitemap3.xml");
testGenerator(smgcList, csmg, 50000);
File file5 = fileService.getResource("/sitemap.xml");
compareFiles(file5, "src/test/resources/org/broadleafcommerce/sitemap/category/sitemap.xml");
}
Aggregations