/* * Copyright 2010-2017 Norwegian Agency for Public Management and eGovernment (Difi) * * Licensed under the EUPL, Version 1.1 or – as soon they * will be approved by the European Commission - subsequent * versions of the EUPL (the "Licence"); * * You may not use this work except in compliance with the Licence. * * You may obtain a copy of the Licence at: * * https://joinup.ec.europa.eu/community/eupl/og_page/eupl * * Unless required by applicable law or agreed to in * writing, software distributed under the Licence is * distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. * See the Licence for the specific language governing * permissions and limitations under the Licence. */ package no.difi.oxalis.outbound.lookup; import com.google.inject.Inject; import com.google.inject.name.Named; import no.difi.oxalis.api.lang.OxalisTransmissionException; import no.difi.oxalis.api.lookup.LookupService; import no.difi.oxalis.commons.guice.GuiceModuleLoader; import no.difi.vefa.peppol.common.model.*; import org.testng.Assert; import org.testng.annotations.Guice; import org.testng.annotations.Test; @Guice(modules = GuiceModuleLoader.class) public class CachedLookupServiceTest { private static ParticipantIdentifier participant = ParticipantIdentifier.of("9908:810418052"); private static DocumentTypeIdentifier documenttype = DocumentTypeIdentifier.of( "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice" + "##urn:www.cenbii.eu:transaction:biitrns010:ver2.0" + ":extended:urn:www.peppol.eu:bis:peppol4a:ver2.0" + "::2.1"); private static ProcessIdentifier process = ProcessIdentifier.of("urn:www.cenbii.eu:profile:bii04:ver2.0"); @Inject @Named("cached") private LookupService lookupService; @Test public void simple() throws Exception { Endpoint endpoint = lookupService.lookup(Header.newInstance() .receiver(participant) .documentType(documenttype) .process(process)); Assert.assertNotNull(endpoint); } @Test public void simpleCached() throws Exception { Endpoint endpoint1 = lookupService.lookup(Header.newInstance() .receiver(participant) .documentType(documenttype) .process(process)); Endpoint endpoint2 = lookupService.lookup(Header.newInstance() .receiver(participant) .documentType(documenttype) .process(process)); Assert.assertTrue(endpoint1 == endpoint2); } @Test(expectedExceptions = OxalisTransmissionException.class) public void triggerException() throws Exception { lookupService.lookup(Header.newInstance() .receiver(ParticipantIdentifier.of("9908:---")) .documentType(documenttype) .process(process)); } @Test public void simpleHeaderStub() { CachedLookupService.HeaderStub headerStub = new CachedLookupService.HeaderStub(Header.newInstance() .receiver(participant) .documentType(documenttype) .process(process)); Assert.assertTrue(headerStub.equals(headerStub)); Assert.assertFalse(headerStub.equals(null)); Assert.assertFalse(headerStub.equals(new Object())); Assert.assertTrue(headerStub.equals(new CachedLookupService.HeaderStub(Header.newInstance() .receiver(participant) .documentType(documenttype) .process(process)))); Assert.assertFalse(headerStub.equals(new CachedLookupService.HeaderStub(Header.newInstance() .receiver(ParticipantIdentifier.of("9908:---")) .documentType(documenttype) .process(process)))); Assert.assertFalse(headerStub.equals(new CachedLookupService.HeaderStub(Header.newInstance() .receiver(participant) .documentType(DocumentTypeIdentifier.of("---")) .process(process)))); Assert.assertFalse(headerStub.equals(new CachedLookupService.HeaderStub(Header.newInstance() .receiver(participant) .documentType(documenttype) .process(ProcessIdentifier.of("---"))))); } }