Changeset 4630


Ignore:
Timestamp:
03/06/14 12:21:54 (10 years ago)
Author:
Twan Goosen
Message:

added test class for RecordPage?

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  
    2222import org.springframework.context.annotation.ComponentScan;
    2323import org.springframework.context.annotation.Configuration;
     24import org.springframework.test.annotation.DirtiesContext;
    2425import org.springframework.test.context.ContextConfiguration;
    2526import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
     
    3435@RunWith(SpringJUnit4ClassRunner.class)
    3536@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
     37@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) // gives us a fresh context for each test
    3638public class TestFacetedSearchPage {
    3739
  • vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/wicket/pages/TestRecordPage.java

    r4617 r4630  
    11package eu.clarin.cmdi.vlo.wicket.pages;
    22
     3import eu.clarin.cmdi.vlo.FacetConstants;
    34import eu.clarin.cmdi.vlo.VloWicketApplication;
    45import eu.clarin.cmdi.vlo.config.DefaultVloConfigFactory;
     
    67import eu.clarin.cmdi.vlo.config.VloSpringConfig;
    78import 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;
    129import org.apache.solr.common.SolrDocument;
     10import org.apache.wicket.model.Model;
    1311import org.apache.wicket.util.tester.WicketTester;
    14 import org.jmock.Expectations;
    15 import org.jmock.Mockery;
    16 import org.jmock.integration.junit4.JUnit4Mockery;
    1712import org.junit.Before;
    1813import org.junit.Test;
    1914import org.junit.runner.RunWith;
    2015import org.springframework.beans.factory.annotation.Autowired;
    21 import org.springframework.context.annotation.Bean;
    2216import org.springframework.context.annotation.ComponentScan;
    2317import org.springframework.context.annotation.Configuration;
     18import org.springframework.test.annotation.DirtiesContext;
     19import org.springframework.test.annotation.DirtiesContext.ClassMode;
    2420import org.springframework.test.context.ContextConfiguration;
    2521import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    2622import org.springframework.test.context.support.AnnotationConfigContextLoader;
    2723
    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 at
    31  * {@link http://www.petrikainulainen.net/programming/tips-and-tricks/mocking-spring-beans-with-apache-wicket-and-mockito/}
    32  *
    33  */
    3424@RunWith(SpringJUnit4ClassRunner.class)
    3525@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
    36 public class TestFacetedSearchPage {
     26@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) // gives us a fresh context for each test
     27public class TestRecordPage {
    3728
    3829    @Configuration
    3930    @ComponentScan
    4031    static class ContextConfiguration extends VloSpringConfig {
    41 
    42         @Bean
    43         public Mockery mockery() {
    44             return new JUnit4Mockery();
    45         }
    46 
    47         @Override
    48         public FacetFieldsService facetFieldsService() {
    49             return mockery().mock(FacetFieldsService.class, "facetFieldsService");
    50         }
    51 
    52         @Override
    53         public SolrDocumentService documentService() {
    54             return mockery().mock(SolrDocumentService.class);
    55         }
    5632
    5733        @Override
     
    6642    @Autowired(required = true)
    6743    private VloWicketApplication application;
    68     @Autowired(required = true)
    69     private Mockery mockery;
    7044
    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;
    7647
    7748    @Before
    7849    public void setUp() {
    7950        tester = new WicketTester(application);
     51        document = new SolrDocument();
     52        selection = new QueryFacetsSelection();
    8053    }
    8154
    8255    @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    }
    9261
    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    }
    10068
    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");
    10675    }
    10776}
Note: See TracChangeset for help on using the changeset viewer.