Merge "BUG-4084: Li: Log unsuccessful submiting of write transactiion"
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / services / SalMeterServiceImplTest.java
1 package org.opendaylight.openflowplugin.impl.services;
2
3 import static org.mockito.Matchers.eq;
4 import static org.mockito.Mockito.mock;
5 import static org.mockito.Mockito.verify;
6 import static org.mockito.Mockito.when;
7
8 import org.junit.Test;
9 import org.mockito.Mock;
10 import org.mockito.Mockito;
11 import org.opendaylight.openflowplugin.api.openflow.registry.meter.DeviceMeterRegistry;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInput;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInputBuilder;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterInput;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterInputBuilder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterInput;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterInputBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.meter.update.UpdatedMeter;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId;
21
22 public class SalMeterServiceImplTest extends ServiceMocking {
23
24     private static final Long DUMMY_METER_ID = 15L;
25     public SalMeterService salMeterService;
26
27     @Mock
28     DeviceMeterRegistry mockedDeviceMeterRegistry;
29
30     @Override
31     public void initialization() {
32         super.initialization();
33         salMeterService = new SalMeterServiceImpl(mockedRequestContextStack, mockedDeviceContext);
34         when(mockedDeviceContext.getDeviceMeterRegistry()).thenReturn(mockedDeviceMeterRegistry);
35     }
36
37     @Test
38     public void testAddMeter() throws Exception {
39         final MeterId dummyMeterId = new MeterId(DUMMY_METER_ID);
40         AddMeterInput addMeterInput = new AddMeterInputBuilder().setMeterId(dummyMeterId).build();
41
42         salMeterService.addMeter(addMeterInput);
43         verify(mockedRequestContextStack).createRequestContext();
44         verify(mockedDeviceMeterRegistry).store(eq(dummyMeterId));
45     }
46
47     @Test
48     public void testUpdateMeter() throws Exception {
49         final UpdatedMeter mockedUpdatedMeter = mock(UpdatedMeter.class);
50         Mockito.when(mockedUpdatedMeter.getMeterId()).thenReturn(new MeterId(43L));
51         Mockito.doReturn(UpdatedMeter.class).when(mockedUpdatedMeter).getImplementedInterface();
52
53         final UpdateMeterInput updateMeterInput = new UpdateMeterInputBuilder().setUpdatedMeter(mockedUpdatedMeter).build();
54         salMeterService.updateMeter(updateMeterInput);
55         verify(mockedRequestContextStack).createRequestContext();
56     }
57
58     @Test
59     public void testRemoveMeter() throws Exception {
60         final MeterId dummyMeterId = new MeterId(DUMMY_METER_ID);
61         RemoveMeterInput removeMeterInput = new RemoveMeterInputBuilder().setMeterId(dummyMeterId).build();
62
63         salMeterService.removeMeter(removeMeterInput);
64         verify(mockedRequestContextStack).createRequestContext();
65         verify(mockedDeviceMeterRegistry).markToBeremoved(eq(dummyMeterId));
66     }
67 }