@Before public void setUp() { factory = fixture.getFactory(); // setup needed common data for each test fixture.initSystemData(); fixture.save( factory.createContentHandler( "Custom content", ContentHandlerName.CUSTOM.getHandlerClassShortName())); MockHttpServletRequest httpRequest = new MockHttpServletRequest("GET", "/"); ServletRequestAccessor.setRequest(httpRequest); dataSourceService = new DataSourceServiceImpl(); dataSourceService.setContentService(contentService); dataSourceService.setTimeService(new MockTimeService(new DateTime(2010, 7, 1, 12, 0, 0, 0))); dataSourceService.setUserDao(userDao); fixture.createAndStoreNormalUserWithUserGroup("content-creator", "Creator", "testuserstore"); fixture.createAndStoreNormalUserWithUserGroup("content-querier", "Querier", "testuserstore"); // setup content type ContentTypeConfigBuilder ctyconf = new ContentTypeConfigBuilder("MyContent", "title"); ctyconf.startBlock("MyContent"); ctyconf.addInput("title", "text", "contentdata/title", "Title", true); ctyconf.addRelatedContentInput( "myRelatedContent", "contentdata/myRelatedContent", "My related content", false, true); ctyconf.endBlock(); Document configAsXmlBytes = XMLDocumentFactory.create(ctyconf.toString()).getAsJDOMDocument(); fixture.save( factory.createContentType( "MyRelatedType", ContentHandlerName.CUSTOM.getHandlerClassShortName(), configAsXmlBytes)); fixture.save(factory.createUnit("MyUnit", "en")); fixture.save( factory.createCategory( "MyCategory", null, "MyRelatedType", "MyUnit", User.ANONYMOUS_UID, User.ANONYMOUS_UID, false)); fixture.save( factory.createCategory( "MyOtherCategory", null, "MyRelatedType", "MyUnit", User.ANONYMOUS_UID, User.ANONYMOUS_UID, false)); fixture.save( factory.createCategoryAccessForUser( "MyCategory", "content-creator", "read, create, approve, admin_browse")); fixture.save( factory.createCategoryAccessForUser("MyCategory", "content-querier", "read, admin_browse")); fixture.save( factory.createCategoryAccessForUser( "MyOtherCategory", "content-creator", "read, create, approve, admin_browse")); fixture.save( factory.createCategoryAccessForUser( "MyOtherCategory", "content-querier", "read, admin_browse")); fixture.flushAndClearHibernateSession(); fixture.flushIndexTransaction(); }
@Test public void testCreateContentWithBlockGroup() { fixture.createAndStoreUserAndUserGroup( "testuser", "testuser fullname", UserType.NORMAL, "testuserstore"); fixture.save( factory.createContentHandler( "Custom content", ContentHandlerName.CUSTOM.getHandlerClassShortName())); // setup content type ContentTypeConfigBuilder ctyconf = new ContentTypeConfigBuilder("Skole", "tittel"); ctyconf.startBlock("Skole"); ctyconf.addInput("tittel", "text", "contentdata/tittel", "Tittel", true); ctyconf.endBlock(); ctyconf.startBlock("Elever", "contentdata/elever"); ctyconf.addInput("elev-navn", "text", "navn", "Navn"); ctyconf.addInput("elev-karakter", "text", "karakter", "Karakter"); ctyconf.endBlock(); ctyconf.startBlock("Laerere", "contentdata/laerere"); ctyconf.addInput("laerer-navn", "text", "navn", "Navn"); ctyconf.addInput("laerer-karakter", "text", "karakter", "Karakter"); ctyconf.endBlock(); Document configAsXmlBytes = XMLDocumentFactory.create(ctyconf.toString()).getAsJDOMDocument(); fixture.save( factory.createContentType( "Skole", ContentHandlerName.CUSTOM.getHandlerClassShortName(), configAsXmlBytes)); fixture.save(factory.createUnit("MyUnit", "en")); fixture.save(factory.createCategory("Skole", "Skole", "MyUnit", "testuser", "testuser")); fixture.save(factory.createCategoryAccessForUser("Skole", "testuser", "read,create,approve")); UserEntity runningUser = fixture.findUserByName("testuser"); PortalSecurityHolder.setImpersonatedUser(runningUser.getKey()); CreateContentParams content = new CreateContentParams(); content.categoryKey = fixture.findCategoryByName("Skole").getKey().toInt(); content.publishFrom = new Date(); content.status = ContentStatus.STATUS_APPROVED; ContentDataInput contentData = new ContentDataInput("Skole"); contentData.add(new TextInput("tittel", "St. Olav Videregaende skole")); GroupInput groupInputElev1 = contentData.addGroup("Elever"); groupInputElev1.add(new TextInput("elev-navn", "Vegar Jansen")); groupInputElev1.add(new TextInput("elev-karakter", "S")); GroupInput groupInputElev2 = contentData.addGroup("Elever"); groupInputElev2.add(new TextInput("elev-navn", "Thomas Sigdestad")); groupInputElev2.add(new TextInput("elev-karakter", "M")); GroupInput groupInputLaerer1 = contentData.addGroup("Laerere"); groupInputLaerer1.add(new TextInput("laerer-navn", "Mutt Hansen")); groupInputLaerer1.add(new TextInput("laerer-karakter", "LG")); GroupInput groupInputLaerer2 = contentData.addGroup("Laerere"); groupInputLaerer2.add(new TextInput("laerer-navn", "Striks Jansen")); groupInputLaerer2.add(new TextInput("laerer-karakter", "M")); content.contentData = contentData; ContentKey contentKey = new ContentKey(internalClient.createContent(content)); ContentEntity createdContent = fixture.findContentByKey(contentKey); ContentVersionEntity createdVersion = createdContent.getMainVersion(); CustomContentData createdContentData = (CustomContentData) createdVersion.getContentData(); BlockGroupDataEntries elever = createdContentData.getBlockGroupDataEntries("Elever"); GroupDataEntry elev1 = elever.getGroupDataEntry(1); assertEquals("Vegar Jansen", ((TextDataEntry) elev1.getEntry("elev-navn")).getValue()); assertEquals("S", ((TextDataEntry) elev1.getEntry("elev-karakter")).getValue()); GroupDataEntry elev2 = elever.getGroupDataEntry(2); assertEquals("Thomas Sigdestad", ((TextDataEntry) elev2.getEntry("elev-navn")).getValue()); assertEquals("M", ((TextDataEntry) elev2.getEntry("elev-karakter")).getValue()); BlockGroupDataEntries laerere = createdContentData.getBlockGroupDataEntries("Laerere"); GroupDataEntry laerer1 = laerere.getGroupDataEntry(1); assertEquals("Mutt Hansen", ((TextDataEntry) laerer1.getEntry("laerer-navn")).getValue()); assertEquals("LG", ((TextDataEntry) laerer1.getEntry("laerer-karakter")).getValue()); GroupDataEntry laerer2 = laerere.getGroupDataEntry(2); assertEquals("Striks Jansen", ((TextDataEntry) laerer2.getEntry("laerer-navn")).getValue()); assertEquals("M", ((TextDataEntry) laerer2.getEntry("laerer-karakter")).getValue()); }