Changeset 4652


Ignore:
Timestamp:
03/07/14 15:39:42 (10 years ago)
Author:
Twan Goosen
Message:

added processing of page parameter to record page (tests needed to be adapted)

Location:
vlo/branches/vlo-3.0/vlo-web-app/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.java

    r4649 r4652  
    5252
    5353    public RecordPage(PageParameters params) {
    54         super(new SolrDocumentModel(params.get("docId").toString()));
     54        super(params);
     55       
     56        final SolrDocumentModel documentModel = new SolrDocumentModel(params.get("docId").toString());
     57        setModel(documentModel);
     58       
    5559        final QueryFacetsSelection selection = selectionParametersConverter.fromParameters(params);
    5660        this.contextModel = Model.of(selection);
    57         addComponents(getModel());
     61       
     62        addComponents(documentModel);
    5863    }
    5964
     
    6570
    6671    private void addComponents(IModel<SolrDocument> documentModel) {
    67         if (documentModel.getObject() == null) {
    68             throw new RuntimeException("Document not found in model " + documentModel.toString());
    69         }
    7072        add(new SolrFieldLabel("name", documentModel, FacetConstants.FIELD_NAME, "Unnamed record"));
    7173        add(createLandingPageLink("landingPageLink", documentModel));
  • vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/wicket/pages/TestFacetedSearchPage.java

    r4631 r4652  
    2020import org.springframework.beans.factory.annotation.Autowired;
    2121import org.springframework.context.annotation.Bean;
    22 import org.springframework.context.annotation.ComponentScan;
    2322import org.springframework.context.annotation.Configuration;
    24 import org.springframework.test.annotation.DirtiesContext;
    2523import org.springframework.test.context.ContextConfiguration;
    2624import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
     
    2826
    2927/**
    30  * Abstract base class for tests that require dependency injection of (mock)
    31  * objects and services. Based on blog post by Petri Kainulainen found at
     28 * Mock injection based on blog post by Petri Kainulainen found at
    3229 * {@link http://www.petrikainulainen.net/programming/tips-and-tricks/mocking-spring-beans-with-apache-wicket-and-mockito/}
    33  *
    3430 */
    3531@RunWith(SpringJUnit4ClassRunner.class)
    3632@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
    37 //@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) // gives us a fresh context for each test
    3833public class TestFacetedSearchPage {
    3934
  • vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/wicket/pages/TestRecordPage.java

    r4640 r4652  
    66import eu.clarin.cmdi.vlo.config.VloConfigFactory;
    77import eu.clarin.cmdi.vlo.config.VloSpringConfig;
    8 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
     8import eu.clarin.cmdi.vlo.service.SolrDocumentService;
    99import org.apache.solr.common.SolrDocument;
    10 import org.apache.wicket.model.Model;
     10import org.apache.wicket.request.mapper.parameter.PageParameters;
    1111import org.apache.wicket.util.tester.WicketTester;
     12import org.jmock.Expectations;
     13import static org.jmock.Expectations.returnValue;
     14import org.jmock.Mockery;
     15import org.jmock.integration.junit4.JUnit4Mockery;
    1216import org.junit.Before;
    1317import org.junit.Test;
    1418import org.junit.runner.RunWith;
    1519import org.springframework.beans.factory.annotation.Autowired;
     20import org.springframework.context.annotation.Bean;
    1621import org.springframework.context.annotation.Configuration;
    1722import org.springframework.test.annotation.DirtiesContext;
     
    2126import org.springframework.test.context.support.AnnotationConfigContextLoader;
    2227
     28/**
     29 * Mock injection based on blog post by Petri Kainulainen found at
     30 * {@link http://www.petrikainulainen.net/programming/tips-and-tricks/mocking-spring-beans-with-apache-wicket-and-mockito/}
     31 */
    2332@RunWith(SpringJUnit4ClassRunner.class)
    2433@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
     
    2837    @Configuration
    2938    static class ContextConfiguration extends VloSpringConfig {
     39
     40        @Bean
     41        public Mockery mockery() {
     42            return new JUnit4Mockery();
     43        }
     44
     45        @Override
     46        public SolrDocumentService documentService() {
     47            return mockery().mock(SolrDocumentService.class);
     48        }
    3049
    3150        @Override
     
    4059    @Autowired(required = true)
    4160    private VloWicketApplication application;
     61    @Autowired(required = true)
     62    private Mockery mockery;
     63    @Autowired(required = true)
     64    private SolrDocumentService documentService;
    4265
    43     private QueryFacetsSelection selection;
    4466    private SolrDocument document;
     67    private PageParameters params;
    4568
    4669    @Before
     
    4871        tester = new WicketTester(application);
    4972        document = new SolrDocument();
    50         selection = new QueryFacetsSelection();
     73        params = new PageParameters();
     74        params.set("docId", "docId");
    5175    }
    5276
    5377    @Test
    5478    public void testRendersSuccessfully() {
    55         tester.startPage(new RecordPage(new Model(document), new Model(selection)));
     79        mockery.checking(new Expectations() {
     80            {
     81                oneOf(documentService).getDocument("docId");
     82                will(returnValue(document));
     83            }
     84        });
     85        tester.startPage(RecordPage.class, params);
    5686        //assert rendered page class
    5787        tester.assertRenderedPage(RecordPage.class);
     
    6090    @Test
    6191    public void testLandingPageLinkInvisible() {
    62         tester.startPage(new RecordPage(new Model(document), new Model(selection)));
     92        mockery.checking(new Expectations() {
     93            {
     94                oneOf(documentService).getDocument("docId");
     95                will(returnValue(document));
     96            }
     97        });
     98        tester.startPage(RecordPage.class, params);
    6399        // no landing page for document, assert landing page link is invisible
    64100        tester.assertInvisible("landingPageLink");
     
    68104    public void testLandingPageLinkVisible() {
    69105        document.addField(FacetConstants.FIELD_LANDINGPAGE, "http://www.landingpage.com");
    70         tester.startPage(new RecordPage(new Model(document), new Model(selection)));
     106
     107        mockery.checking(new Expectations() {
     108            {
     109                oneOf(documentService).getDocument("docId");
     110                will(returnValue(document));
     111            }
     112        });
     113        tester.startPage(RecordPage.class, params);
    71114        // document has a landing page, assert link is invisible
    72115        tester.assertVisible("landingPageLink");
    73116    }
    74    
     117
    75118    //TODO: Add test for display of resources
    76119}
Note: See TracChangeset for help on using the changeset viewer.