+ @Test
+ public void testValidate() {
+ EndpointGroupId endpointGroupId = new EndpointGroupId("epg-1");
+ FaasEndpointContext faasEndpointContext1 = new FaasEndpointContextBuilder().build();
+ FaasEndpointContext faasEndpointContext2 = new FaasEndpointContextBuilder()
+ .setFaasPortRefId(new Uuid("c4511aac-ae43-11e5-bf7f-feff819cdc9f")).build();
+
+ Endpoint ep = new EndpointBuilder()
+ .build();
+ assertFalse(listener.validate(ep));
+
+ ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .build();
+ assertFalse(listener.validate(ep));
+
+ ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .build();
+ assertFalse(listener.validate(ep));
+
+ ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .setMacAddress(MAC_ADDRESS)
+ .build();
+ assertFalse(listener.validate(ep));
+
+ ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .setMacAddress(MAC_ADDRESS)
+ .setTenant(gbpTenantId)
+ .build();
+ assertFalse(listener.validate(ep));
+
+ ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .setMacAddress(MAC_ADDRESS)
+ .setTenant(gbpTenantId)
+ .setEndpointGroup(endpointGroupId)
+ .build();
+ assertFalse(listener.validate(ep));
+
+ ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .setMacAddress(MAC_ADDRESS)
+ .setTenant(gbpTenantId)
+ .setEndpointGroup(endpointGroupId)
+ .addAugmentation(FaasEndpointContext.class, faasEndpointContext1)
+ .build();
+ assertFalse(listener.validate(ep));
+
+ ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .setMacAddress(MAC_ADDRESS)
+ .setTenant(gbpTenantId)
+ .setEndpointGroup(endpointGroupId)
+ .addAugmentation(FaasEndpointContext.class, faasEndpointContext2)
+ .build();
+ assertTrue(listener.validate(ep));
+ }
+
+ @Test
+ public void testProcessEndpoint(){
+ EndpointGroupId endpointGroupId = new EndpointGroupId("epg-1");
+ FaasEndpointContext faasEndpointContext2 = new FaasEndpointContextBuilder()
+ .setFaasPortRefId(new Uuid("c4511aac-ae43-11e5-bf7f-feff819cdc9f")).build();
+
+ Endpoint ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .setMacAddress(MAC_ADDRESS)
+ .setTenant(gbpTenantId)
+ .setEndpointGroup(endpointGroupId)
+ .addAugmentation(FaasEndpointContext.class, faasEndpointContext2)
+ .build();
+
+ listener.processEndpoint(ep);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetFaasSubnetId() throws ReadFailedException{
+ EndpointGroupId endpointGroupId = new EndpointGroupId("epg-1");
+ NetworkDomainId networkDomainId = new NetworkDomainId("network-domain-1");
+ FaasEndpointContext faasEndpointContext2 = new FaasEndpointContextBuilder()
+ .setFaasPortRefId(new Uuid("c4511aac-ae43-11e5-bf7f-feff819cdc9f")).build();
+ SubnetId subnetId = new SubnetId(networkDomainId);
+ ReadOnlyTransaction roTx1 = mock(ReadOnlyTransaction.class);
+ ReadWriteTransaction rwTx2 = mock(ReadWriteTransaction.class);
+
+ CheckedFuture<Optional<ResolvedPolicies>, ReadFailedException> futureResolvedPolicies = mock(CheckedFuture.class);
+ Optional<ResolvedPolicies> optResolvedPolicies = mock(Optional.class);
+ when(optResolvedPolicies.isPresent()).thenReturn(false);
+ when(futureResolvedPolicies.checkedGet()).thenReturn(optResolvedPolicies);
+ when(roTx1.read(LogicalDatastoreType.OPERATIONAL,
+ InstanceIdentifier.builder(ResolvedPolicies.class).build())).thenReturn(futureResolvedPolicies);
+
+ CheckedFuture<Optional<MappedSubnet>, ReadFailedException> futureMappedSubnet = mock(CheckedFuture.class);
+ Optional<MappedSubnet> optMappedSubnet = mock(Optional.class);
+ when(optMappedSubnet.isPresent()).thenReturn(false);
+ when(futureMappedSubnet.checkedGet()).thenReturn(optMappedSubnet);
+ when(rwTx2.read(LogicalDatastoreType.OPERATIONAL,
+ FaasIidFactory.mappedSubnetIid(gbpTenantId, subnetId))).thenReturn(futureMappedSubnet);
+
+ when(dataProvider.newReadOnlyTransaction()).thenReturn(roTx1);
+ when(dataProvider.newReadWriteTransaction()).thenReturn(rwTx2);
+
+ Endpoint ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .setMacAddress(MAC_ADDRESS)
+ .setTenant(gbpTenantId)
+ .addAugmentation(FaasEndpointContext.class, faasEndpointContext2)
+ .build();
+
+ assertNull(listener.getFaasSubnetId(ep));
+
+ ep = new EndpointBuilder()
+ .setL2Context(L_2_BRIDGE_DOMAIN_ID)
+ .setL3Address(ImmutableList.of(new L3AddressBuilder().build()))
+ .setMacAddress(MAC_ADDRESS)
+ .setTenant(gbpTenantId)
+ .setEndpointGroup(endpointGroupId)
+ .setNetworkContainment(networkDomainId)
+ .addAugmentation(FaasEndpointContext.class, faasEndpointContext2)
+ .build();
+
+ assertNull(listener.getFaasSubnetId(ep));
+ }
+