2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.groupbasedpolicy.sxp.ep.provider.impl;
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.junit.runner.RunWith;
14 import org.mockito.Matchers;
15 import org.mockito.Mock;
16 import org.mockito.Mockito;
17 import org.mockito.runners.MockitoJUnitRunner;
18 import org.opendaylight.groupbasedpolicy.sxp.ep.provider.api.EPPolicyTemplateProvider;
19 import org.opendaylight.groupbasedpolicy.sxp.ep.provider.api.TemplateProviderDistributionTarget;
20 import org.opendaylight.yangtools.concepts.ObjectRegistration;
23 * Test for {@link EPPolicyTemplateProviderRegistryImpl}.
25 @RunWith(MockitoJUnitRunner.class)
26 public class EPPolicyTemplateProviderRegistryImplTest {
29 private EPPolicyTemplateProvider templateProvider;
31 private TemplateProviderDistributionTarget<EPPolicyTemplateProvider> target1;
33 private TemplateProviderDistributionTarget<EPPolicyTemplateProvider> target2;
35 private TemplateProviderDistributionTarget<EPPolicyTemplateProvider> target3;
37 private EPPolicyTemplateProviderRegistryImpl registry;
40 public void setUp() throws Exception {
41 registry = new EPPolicyTemplateProviderRegistryImpl();
45 public void testRegisterTemplateProvider() throws Exception {
46 registry.addDistributionTarget(target1);
47 final ObjectRegistration<EPPolicyTemplateProvider> registration = registry.registerTemplateProvider(templateProvider);
48 Mockito.verify(target1).setTemplateProvider(templateProvider);
49 registry.addDistributionTarget(target2);
50 Mockito.verify(target2).setTemplateProvider(templateProvider);
53 Mockito.verify(target1).setTemplateProvider(null);
54 Mockito.verify(target2).setTemplateProvider(null);
55 registry.addDistributionTarget(target3);
57 Mockito.verifyNoMoreInteractions(target1, target2, target3);
61 public void testAddDistributionTarget() throws Exception {
62 registry.addDistributionTarget(target1);
63 Mockito.verify(target1, Mockito.never()).setTemplateProvider(Matchers.<EPPolicyTemplateProvider>any());
65 registry.registerTemplateProvider(templateProvider);
66 Mockito.verify(target1).setTemplateProvider(templateProvider);
68 registry.addDistributionTarget(target2);
69 Mockito.verify(target2).setTemplateProvider(templateProvider);
73 public void testClose() throws Exception {
74 registry.addDistributionTarget(target1);
75 final ObjectRegistration<EPPolicyTemplateProvider> registration = registry.registerTemplateProvider(templateProvider);
76 registry.addDistributionTarget(target2);
77 Mockito.verify(target1).setTemplateProvider(templateProvider);
78 Mockito.verify(target2).setTemplateProvider(templateProvider);
81 Mockito.verify(target1).setTemplateProvider(null);
82 Mockito.verify(target2).setTemplateProvider(null);
84 Mockito.verifyNoMoreInteractions(target1, target2);