Changeset 4630
- Timestamp:
- 03/06/14 12:21:54 (10 years ago)
- Location:
- vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/wicket/pages
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/wicket/pages/TestFacetedSearchPage.java
r4583 r4630 22 22 import org.springframework.context.annotation.ComponentScan; 23 23 import org.springframework.context.annotation.Configuration; 24 import org.springframework.test.annotation.DirtiesContext; 24 25 import org.springframework.test.context.ContextConfiguration; 25 26 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; … … 34 35 @RunWith(SpringJUnit4ClassRunner.class) 35 36 @ContextConfiguration(loader = AnnotationConfigContextLoader.class) 37 @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) // gives us a fresh context for each test 36 38 public class TestFacetedSearchPage { 37 39 -
vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/wicket/pages/TestRecordPage.java
r4617 r4630 1 1 package eu.clarin.cmdi.vlo.wicket.pages; 2 2 3 import eu.clarin.cmdi.vlo.FacetConstants; 3 4 import eu.clarin.cmdi.vlo.VloWicketApplication; 4 5 import eu.clarin.cmdi.vlo.config.DefaultVloConfigFactory; … … 6 7 import eu.clarin.cmdi.vlo.config.VloSpringConfig; 7 8 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 8 import eu.clarin.cmdi.vlo.service.FacetFieldsService;9 import eu.clarin.cmdi.vlo.service.SolrDocumentService;10 import java.util.Arrays;11 import org.apache.solr.client.solrj.response.FacetField;12 9 import org.apache.solr.common.SolrDocument; 10 import org.apache.wicket.model.Model; 13 11 import org.apache.wicket.util.tester.WicketTester; 14 import org.jmock.Expectations;15 import org.jmock.Mockery;16 import org.jmock.integration.junit4.JUnit4Mockery;17 12 import org.junit.Before; 18 13 import org.junit.Test; 19 14 import org.junit.runner.RunWith; 20 15 import org.springframework.beans.factory.annotation.Autowired; 21 import org.springframework.context.annotation.Bean;22 16 import org.springframework.context.annotation.ComponentScan; 23 17 import org.springframework.context.annotation.Configuration; 18 import org.springframework.test.annotation.DirtiesContext; 19 import org.springframework.test.annotation.DirtiesContext.ClassMode; 24 20 import org.springframework.test.context.ContextConfiguration; 25 21 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 26 22 import org.springframework.test.context.support.AnnotationConfigContextLoader; 27 23 28 /**29 * Abstract base class for tests that require dependency injection of (mock)30 * objects and services. Based on blog post by Petri Kainulainen found at31 * {@link http://www.petrikainulainen.net/programming/tips-and-tricks/mocking-spring-beans-with-apache-wicket-and-mockito/}32 *33 */34 24 @RunWith(SpringJUnit4ClassRunner.class) 35 25 @ContextConfiguration(loader = AnnotationConfigContextLoader.class) 36 public class TestFacetedSearchPage { 26 @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) // gives us a fresh context for each test 27 public class TestRecordPage { 37 28 38 29 @Configuration 39 30 @ComponentScan 40 31 static class ContextConfiguration extends VloSpringConfig { 41 42 @Bean43 public Mockery mockery() {44 return new JUnit4Mockery();45 }46 47 @Override48 public FacetFieldsService facetFieldsService() {49 return mockery().mock(FacetFieldsService.class, "facetFieldsService");50 }51 52 @Override53 public SolrDocumentService documentService() {54 return mockery().mock(SolrDocumentService.class);55 }56 32 57 33 @Override … … 66 42 @Autowired(required = true) 67 43 private VloWicketApplication application; 68 @Autowired(required = true)69 private Mockery mockery;70 44 71 @Autowired(required = true) 72 private FacetFieldsService facetFieldsService; 73 74 @Autowired(required = true) 75 private SolrDocumentService documentService; 45 private QueryFacetsSelection selection; 46 private SolrDocument document; 76 47 77 48 @Before 78 49 public void setUp() { 79 50 tester = new WicketTester(application); 51 document = new SolrDocument(); 52 selection = new QueryFacetsSelection(); 80 53 } 81 54 82 55 @Test 83 public void homepageRendersSuccessfully() { 84 // mock behaviour of facet fields service 85 mockery.checking(new Expectations() { 86 { 87 // mock facets 88 atLeast(1).of(facetFieldsService).getFacetFieldCount(); 89 will(returnValue(2L)); 90 atLeast(1).of(facetFieldsService).getFacetFields(with(any(QueryFacetsSelection.class))); 91 will(returnValue(Arrays.asList(new FacetField("collection"), new FacetField("language"), new FacetField("resource class")))); 56 public void testRendersSuccessfully() { 57 tester.startPage(new RecordPage(new Model(document), new Model(selection))); 58 //assert rendered page class 59 tester.assertRenderedPage(RecordPage.class); 60 } 92 61 93 // mock search results 94 atLeast(1).of(documentService).getDocumentCount(with(any(QueryFacetsSelection.class))); 95 will(returnValue(1000L)); 96 oneOf(documentService).getDocuments(with(any(QueryFacetsSelection.class)), with(equal(0)), with(equal(10))); 97 will(returnValue(Arrays.asList(new SolrDocument(), new SolrDocument()))); 98 } 99 }); 62 @Test 63 public void testLandingPageLinkInvisible() { 64 tester.startPage(new RecordPage(new Model(document), new Model(selection))); 65 // no landing page for document, assert landing page link is invisible 66 tester.assertInvisible("landingPageLink"); 67 } 100 68 101 //start and render the test page 102 tester.startPage(FacetedSearchPage.class); 103 104 //assert rendered page class 105 tester.assertRenderedPage(FacetedSearchPage.class); 69 @Test 70 public void testLandingPageLinkVisible() { 71 document.addField(FacetConstants.FIELD_LANDINGPAGE, "http://www.landingpage.com"); 72 tester.startPage(new RecordPage(new Model(document), new Model(selection))); 73 // document has a landing page, assert link is invisible 74 tester.assertVisible("landingPageLink"); 106 75 } 107 76 }
Note: See TracChangeset
for help on using the changeset viewer.