/*
* Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.groupbasedpolicy.util;
import static org.mockito.Mockito.mock;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoint.locations.AddressEndpointLocation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoint.locations.AddressEndpointLocationKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoint.locations.ContainmentEndpointLocation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoint.locations.ContainmentEndpointLocationKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.absolute.location.AbsoluteLocation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.relative.location.relative.locations.ExternalLocation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.relative.location.relative.locations.ExternalLocationKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.relative.location.relative.locations.InternalLocation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.relative.location.relative.locations.InternalLocationKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClauseName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContextId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2BridgeDomainId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2FloodDomainId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L3ContextId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.RuleName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SelectorName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubnetId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.Endpoints;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.Endpoint;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.EndpointKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.EndpointL3;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.EndpointL3Prefix;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint_location_provider.rev160419.location.providers.LocationProvider;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint_location_provider.rev160419.location.providers.location.provider.ProviderAddressEndpointLocation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.AddressType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.ContextType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.forwarding.ForwardingByTenant;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinition;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.Tenant;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2BridgeDomain;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2FloodDomain;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L3Context;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.Subnet;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.Contract;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.EndpointGroup;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.ExternalImplicitGroup;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.Clause;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.Subject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.subject.Rule;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ConsumerNamedSelector;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ProviderNamedSelector;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ActionInstance;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstance;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.RendererName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.Renderers;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.Renderer;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.SupportedActionDefinition;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.SupportedClassifierDefinition;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.followed.tenants.FollowedTenant;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.followed.tenants.followed.tenant.FollowedEndpointGroup;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class IidFactoryTest {
private final String LOCATION_PROVIDER_NAME = "location-provider";
private final String IP_ADDRESS = "192.68.50.71";
private final String L3_CONTEXT_ID = "l3Context";
private final String CONNECTOR = "connector";
private TenantId tenantId;
private EndpointGroupId epgId;
private ContractId contractId;
private SubjectName subjectName;
private RuleName ruleName;
private RendererName rendererName;
private InstanceIdentifier<Node> nodeIid = InstanceIdentifier.builder(Nodes.class)
.child(Node.class, new NodeKey(new NodeId("node"))).build();
private InstanceIdentifier<NodeConnector> connectorIid = InstanceIdentifier.builder(Nodes.class)
.child(Node.class, new NodeKey(new NodeId("node")))
.child(NodeConnector.class, new NodeConnectorKey(new NodeConnectorId("connector")))
.build();
@Before
public void initialise() {
tenantId = mock(TenantId.class);
epgId = mock(EndpointGroupId.class);
contractId = mock(ContractId.class);
subjectName = mock(SubjectName.class);
ruleName = mock(RuleName.class);
rendererName = mock(RendererName.class);
}
@Test
public void testTenantId() {
InstanceIdentifier<Tenant> identifier = IidFactory.tenantIid(tenantId);
Assert.assertEquals(tenantId, InstanceIdentifier.keyOf(identifier).getId());
}
@Test
public void testEndpointGroupIid() {
InstanceIdentifier<EndpointGroup> identifier = IidFactory.endpointGroupIid(tenantId, epgId);
Assert.assertEquals(epgId, InstanceIdentifier.keyOf(identifier).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testContractIid() {
InstanceIdentifier<Contract> identifier = IidFactory.contractIid(tenantId, contractId);
Assert.assertEquals(contractId, InstanceIdentifier.keyOf(identifier).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testContractWildcardIid() {
InstanceIdentifier<Contract> identifier = IidFactory.contractWildcardIid(tenantId);
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testSubjectIid() {
SubjectName subjectName = mock(SubjectName.class);
InstanceIdentifier<Subject> identifier = IidFactory.subjectIid(tenantId, contractId, subjectName);
Assert.assertEquals(subjectName, InstanceIdentifier.keyOf(identifier).getName());
Assert.assertEquals(contractId, identifier.firstKeyOf(Contract.class).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testProviderNamedSelectorIid() {
SelectorName providerSelectorName = mock(SelectorName.class);
InstanceIdentifier<ProviderNamedSelector> identifier = IidFactory.providerNamedSelectorIid(tenantId, epgId,
providerSelectorName);
Assert.assertEquals(providerSelectorName, InstanceIdentifier.keyOf(identifier).getName());
Assert.assertEquals(epgId, identifier.firstKeyOf(EndpointGroup.class).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testConsumerNamedSelectorIid() {
SelectorName consumerSelectorName = mock(SelectorName.class);
InstanceIdentifier<ConsumerNamedSelector> identifier = IidFactory.consumerNamedSelectorIid(tenantId, epgId,
consumerSelectorName);
Assert.assertEquals(consumerSelectorName, InstanceIdentifier.keyOf(identifier).getName());
Assert.assertEquals(epgId, identifier.firstKeyOf(EndpointGroup.class).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testClauseIid() {
ClauseName clauseName = mock(ClauseName.class);
InstanceIdentifier<Clause> identifier = IidFactory.clauseIid(tenantId, contractId, clauseName);
Assert.assertEquals(clauseName, InstanceIdentifier.keyOf(identifier).getName());
Assert.assertEquals(contractId, identifier.firstKeyOf(Contract.class).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testRuleId() {
InstanceIdentifier<Rule> identifier = IidFactory.ruleIid(tenantId, contractId, subjectName, ruleName);
Assert.assertEquals(ruleName, InstanceIdentifier.keyOf(identifier).getName());
Assert.assertEquals(subjectName, identifier.firstKeyOf(Subject.class).getName());
Assert.assertEquals(contractId, identifier.firstKeyOf(Contract.class).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testActionInstanceIid() {
ActionName actionName = mock(ActionName.class);
InstanceIdentifier<ActionInstance> identifier = IidFactory.actionInstanceIid(tenantId, actionName);
Assert.assertEquals(actionName, InstanceIdentifier.keyOf(identifier).getName());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testClassifierInstanceIid() {
ClassifierName classifierName = mock(ClassifierName.class);
InstanceIdentifier<ClassifierInstance> identifier = IidFactory.classifierInstanceIid(tenantId, classifierName);
Assert.assertEquals(classifierName, InstanceIdentifier.keyOf(identifier).getName());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testClassifierRefIid() {
ClassifierName classifierRefName = mock(ClassifierName.class);
InstanceIdentifier<ClassifierRef> identifier = IidFactory.classifierRefIid(tenantId, contractId, subjectName,
ruleName, classifierRefName);
Assert.assertEquals(classifierRefName, InstanceIdentifier.keyOf(identifier).getName());
Assert.assertEquals(ruleName, identifier.firstKeyOf(Rule.class).getName());
Assert.assertEquals(subjectName, identifier.firstKeyOf(Subject.class).getName());
Assert.assertEquals(contractId, identifier.firstKeyOf(Contract.class).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testL2FloodDomainIid_tenantApi() {
L2FloodDomainId l2FloodDomainId = mock(L2FloodDomainId.class);
InstanceIdentifier<L2FloodDomain> identifier = IidFactory.l2FloodDomainIid(tenantId, l2FloodDomainId);
Assert.assertEquals(l2FloodDomainId, InstanceIdentifier.keyOf(identifier).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testL2BridgeDomainIid_tenantApi() {
L2BridgeDomainId l2BridgeDomainId = mock(L2BridgeDomainId.class);
InstanceIdentifier<L2BridgeDomain> identifier = IidFactory.l2BridgeDomainIid(tenantId, l2BridgeDomainId);
Assert.assertEquals(l2BridgeDomainId, InstanceIdentifier.keyOf(identifier).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testL3ContextIid_tenantApi() {
L3ContextId l3ContextId = mock(L3ContextId.class);
InstanceIdentifier<L3Context> identifier = IidFactory.l3ContextIid(tenantId, l3ContextId);
Assert.assertEquals(l3ContextId, InstanceIdentifier.keyOf(identifier).getId());
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testForwardingByTenantIid() {
InstanceIdentifier<ForwardingByTenant> forwardingByTenantIid = IidFactory.forwardingByTenantIid(tenantId);
Assert.assertEquals(tenantId, forwardingByTenantIid.firstKeyOf(ForwardingByTenant.class).getTenantId());
}
@Test
public void testEndpointIid() {
L2BridgeDomainId l2Context = mock(L2BridgeDomainId.class);
MacAddress macAddress = mock(MacAddress.class);
InstanceIdentifier<Endpoint> identifier = IidFactory.endpointIid(l2Context, macAddress);
Assert.assertEquals(l2Context, InstanceIdentifier.keyOf(identifier).getL2Context());
Assert.assertEquals(macAddress, InstanceIdentifier.keyOf(identifier).getMacAddress());
EndpointKey key = mock(EndpointKey.class);
identifier = IidFactory.endpointIid(key);
Assert.assertEquals(key, identifier.firstKeyOf(Endpoint.class));
}
@Test
public void testL3EndpointIid() {
L3ContextId l3ContextId = mock(L3ContextId.class);
IpAddress ipAddress = mock(IpAddress.class);
InstanceIdentifier<EndpointL3> identifier = IidFactory.l3EndpointIid(l3ContextId, ipAddress);
Assert.assertEquals(l3ContextId, InstanceIdentifier.keyOf(identifier).getL3Context());
Assert.assertEquals(ipAddress, InstanceIdentifier.keyOf(identifier).getIpAddress());
}
@Test
public void testL3EndpointIidWildcard() {
InstanceIdentifier<EndpointL3> identifier = IidFactory.l3EndpointsIidWildcard();
Assert.assertNotNull(identifier);
}
@Test
public void testEndpointL3PrefixIid() {
L3ContextId l3Context = mock(L3ContextId.class);
IpPrefix ipPrefix = mock(IpPrefix.class);
InstanceIdentifier<EndpointL3Prefix> identifier = IidFactory.endpointL3PrefixIid(l3Context, ipPrefix);
Assert.assertEquals(l3Context, InstanceIdentifier.keyOf(identifier).getL3Context());
Assert.assertEquals(ipPrefix, InstanceIdentifier.keyOf(identifier).getIpPrefix());
}
@Test
public void testEndpointIidWildcard() {
InstanceIdentifier<Endpoints> identifier = IidFactory.endpointsIidWildcard();
Assert.assertNotNull(identifier);
}
@Test
public void testSubnetIid_tenantApi() {
SubnetId subnetId = mock(SubnetId.class);
InstanceIdentifier<Subnet> identifier = IidFactory.subnetIid(tenantId, subnetId);
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
Assert.assertEquals(subnetId, identifier.firstKeyOf(Subnet.class).getId());
}
@Test
public void testSubnetWildcardIid() {
InstanceIdentifier<Subnet> identifier = IidFactory.subnetWildcardIid(tenantId);
Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
}
@Test
public void testClassifierDefinitionIid() {
ClassifierDefinitionId classifierDefinitionId = mock(ClassifierDefinitionId.class);
InstanceIdentifier<ClassifierDefinition> identifier = IidFactory.classifierDefinitionIid(
classifierDefinitionId);
Assert.assertEquals(classifierDefinitionId, identifier.firstKeyOf(ClassifierDefinition.class).getId());
}
@Test
public void testActionDefinitionIid() {
ActionDefinitionId actionDefinitionId = mock(ActionDefinitionId.class);
InstanceIdentifier<ActionDefinition> identifier = IidFactory.actionDefinitionIid(
actionDefinitionId);
Assert.assertEquals(actionDefinitionId, identifier.firstKeyOf(ActionDefinition.class).getId());
}
@Test
public void testSupportedActionDefinitionIidWildcard() {
InstanceIdentifier<SupportedActionDefinition>
identifier = IidFactory.supportedActionDefinitionIidWildcard();
Assert.assertNotNull(identifier);
}
@Test
public void testSupportedClassifierDefinitionIidWildcard() {
InstanceIdentifier<SupportedClassifierDefinition>
identifier = IidFactory.supportedClassifierDefinitionIidWildcard();
Assert.assertNotNull(identifier);
}
@Test
public void testFollowedEndpointgroupIid(){
InstanceIdentifier<FollowedEndpointGroup>
identifier = IidFactory.followedEndpointgroupIid(rendererName, tenantId, epgId);
Assert.assertEquals(epgId, identifier.firstKeyOf(FollowedEndpointGroup.class).getId());
}
@Test
public void testFollowedTenantIid(){
InstanceIdentifier<FollowedTenant>
identifier = IidFactory.followedTenantIid(rendererName, tenantId);
Assert.assertEquals(tenantId, identifier.firstKeyOf(FollowedTenant.class).getId());
}
@Test
public void testRendererIid(){
InstanceIdentifier<Renderer>
identifier = IidFactory.rendererIid(rendererName);
Assert.assertEquals(rendererName, identifier.firstKeyOf(Renderer.class).getName());
}
@Test
public void testRenderersIid(){
InstanceIdentifier<Renderers>
identifier = IidFactory.renderersIid();
Assert.assertNotNull(identifier);
}
@Test
public void testeExternalImplicitGroupIid() {
InstanceIdentifier<ExternalImplicitGroup> identifier = IidFactory.externalImplicitGroupIid(tenantId, epgId);
Assert.assertEquals(epgId, identifier.firstKeyOf(ExternalImplicitGroup.class).getId());
}
@Test
public void testProviderAddressEndpointLocationIid() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
InstanceIdentifier<ProviderAddressEndpointLocation> identifier = IidFactory.providerAddressEndpointLocationIid(
LOCATION_PROVIDER_NAME, AddressType.class, IP_ADDRESS, ContextType.class, l3Context);
Assert.assertEquals(LOCATION_PROVIDER_NAME,
identifier.firstKeyOf(LocationProvider.class).getProvider().getValue());
Assert.assertEquals(IP_ADDRESS, identifier.firstKeyOf(ProviderAddressEndpointLocation.class).getAddress());
Assert.assertEquals(l3Context, identifier.firstKeyOf(ProviderAddressEndpointLocation.class).getContextId());
}
@Test
public void testAddressEndpointIid() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
InstanceIdentifier<AddressEndpoint> identifier = IidFactory.addressEndpointIid(
new AddressEndpointKey(IP_ADDRESS, AddressType.class, l3Context, ContextType.class));
Assert.assertEquals(AddressType.class, identifier.firstKeyOf(AddressEndpoint.class).getAddressType());
Assert.assertEquals(IP_ADDRESS, identifier.firstKeyOf(AddressEndpoint.class).getAddress());
Assert.assertEquals(ContextType.class, identifier.firstKeyOf(AddressEndpoint.class).getContextType());
Assert.assertEquals(l3Context, identifier.firstKeyOf(AddressEndpoint.class).getContextId());
}
@Test
public void testAddressEndpointLocationIid() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
AddressEndpointLocationKey addrEndpointLocationKey =
new AddressEndpointLocationKey(IP_ADDRESS, AddressType.class, l3Context, ContextType.class);
InstanceIdentifier<AddressEndpointLocation> iid =
IidFactory.addressEndpointLocationIid(addrEndpointLocationKey);
Assert.assertEquals(AddressType.class, iid.firstKeyOf(AddressEndpointLocation.class).getAddressType());
Assert.assertEquals(IP_ADDRESS, iid.firstKeyOf(AddressEndpointLocation.class).getAddress());
Assert.assertEquals(ContextType.class, iid.firstKeyOf(AddressEndpointLocation.class).getContextType());
Assert.assertEquals(l3Context, iid.firstKeyOf(AddressEndpointLocation.class).getContextId());
}
@Test
public void testContainmentEndpointLocationIid() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
ContainmentEndpointLocationKey contEndpointLocationKey =
new ContainmentEndpointLocationKey(l3Context, ContextType.class);
InstanceIdentifier<ContainmentEndpointLocation> iid =
IidFactory.containmentEndpointLocationIid(contEndpointLocationKey);
Assert.assertEquals(ContextType.class, iid.firstKeyOf(ContainmentEndpointLocation.class).getContextType());
Assert.assertEquals(l3Context, iid.firstKeyOf(ContainmentEndpointLocation.class).getContextId());
}
@Test
public void internalLocationIid_AddrEndpoint() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
AddressEndpointLocationKey addrEndpointLocationKey =
new AddressEndpointLocationKey(IP_ADDRESS, AddressType.class, l3Context, ContextType.class);
InternalLocationKey internalLocationKey = new InternalLocationKey(nodeIid, connectorIid);
InstanceIdentifier<InternalLocation> iid =
IidFactory.internalLocationIid(addrEndpointLocationKey, internalLocationKey);
Assert.assertEquals(AddressType.class, iid.firstKeyOf(AddressEndpointLocation.class).getAddressType());
Assert.assertEquals(IP_ADDRESS, iid.firstKeyOf(AddressEndpointLocation.class).getAddress());
Assert.assertEquals(ContextType.class, iid.firstKeyOf(AddressEndpointLocation.class).getContextType());
Assert.assertEquals(l3Context, iid.firstKeyOf(AddressEndpointLocation.class).getContextId());
Assert.assertEquals(nodeIid, iid.firstKeyOf(InternalLocation.class).getInternalNode());
Assert.assertEquals(connectorIid, iid.firstKeyOf(InternalLocation.class).getInternalNodeConnector());
}
@Test
public void internalLocationIid_ContEndpoint() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
ContainmentEndpointLocationKey contEndpointLocationKey =
new ContainmentEndpointLocationKey(l3Context, ContextType.class);
InternalLocationKey internalLocationKey = new InternalLocationKey(nodeIid, connectorIid);
InstanceIdentifier<InternalLocation> iid =
IidFactory.internalLocationIid(contEndpointLocationKey, internalLocationKey);
Assert.assertEquals(ContextType.class, iid.firstKeyOf(ContainmentEndpointLocation.class).getContextType());
Assert.assertEquals(l3Context, iid.firstKeyOf(ContainmentEndpointLocation.class).getContextId());
Assert.assertEquals(nodeIid, iid.firstKeyOf(InternalLocation.class).getInternalNode());
Assert.assertEquals(connectorIid, iid.firstKeyOf(InternalLocation.class).getInternalNodeConnector());
}
@Test
public void externalLocationIid_AddrEndpoint() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
AddressEndpointLocationKey addrEndpointLocationKey =
new AddressEndpointLocationKey(IP_ADDRESS, AddressType.class, l3Context, ContextType.class);
ExternalLocationKey externalLocationKey = new ExternalLocationKey(CONNECTOR, nodeIid);
InstanceIdentifier<ExternalLocation> iid =
IidFactory.externalLocationIid(addrEndpointLocationKey, externalLocationKey);
Assert.assertEquals(AddressType.class, iid.firstKeyOf(AddressEndpointLocation.class).getAddressType());
Assert.assertEquals(IP_ADDRESS, iid.firstKeyOf(AddressEndpointLocation.class).getAddress());
Assert.assertEquals(ContextType.class, iid.firstKeyOf(AddressEndpointLocation.class).getContextType());
Assert.assertEquals(l3Context, iid.firstKeyOf(AddressEndpointLocation.class).getContextId());
Assert.assertEquals(CONNECTOR, iid.firstKeyOf(ExternalLocation.class).getExternalNodeConnector());
Assert.assertEquals(nodeIid, iid.firstKeyOf(ExternalLocation.class).getExternalNodeMountPoint());
}
@Test
public void externalLocationIid_ContEndpoint() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
ContainmentEndpointLocationKey addrEndpointLocationKey =
new ContainmentEndpointLocationKey(l3Context, ContextType.class);
ExternalLocationKey externalLocationKey = new ExternalLocationKey(CONNECTOR, nodeIid);
InstanceIdentifier<ExternalLocation> iid =
IidFactory.externalLocationIid(addrEndpointLocationKey, externalLocationKey);
Assert.assertEquals(ContextType.class, iid.firstKeyOf(ContainmentEndpointLocation.class).getContextType());
Assert.assertEquals(l3Context, iid.firstKeyOf(ContainmentEndpointLocation.class).getContextId());
Assert.assertEquals(CONNECTOR, iid.firstKeyOf(ExternalLocation.class).getExternalNodeConnector());
Assert.assertEquals(nodeIid, iid.firstKeyOf(ExternalLocation.class).getExternalNodeMountPoint());
}
@Test
public void absoluteLocationIid() {
ContextId l3Context = new ContextId(L3_CONTEXT_ID);
AddressEndpointLocationKey addrEndpointLocationKey =
new AddressEndpointLocationKey(IP_ADDRESS, AddressType.class, l3Context, ContextType.class);
InstanceIdentifier<AbsoluteLocation> iid = IidFactory.absoluteLocationIid(addrEndpointLocationKey);
Assert.assertEquals(AddressType.class, iid.firstKeyOf(AddressEndpointLocation.class).getAddressType());
Assert.assertEquals(IP_ADDRESS, iid.firstKeyOf(AddressEndpointLocation.class).getAddress());
Assert.assertEquals(ContextType.class, iid.firstKeyOf(AddressEndpointLocation.class).getContextType());
Assert.assertEquals(l3Context, iid.firstKeyOf(AddressEndpointLocation.class).getContextId());
}
}