blob: f4438314f06156abd79f4a0d587b91c87fe6bef4 [file] [log] [blame]
kmcpeakeb172d5f2015-12-10 11:30:43 +00001/*
2 * Licensed under the Apache License, Version 2.0 (the "License");
3 * you may not use this file except in compliance with the License.
4 * You may obtain a copy of the License at
5 *
6 * http://www.apache.org/licenses/LICENSE-2.0
7 *
8 * Unless required by applicable law or agreed to in writing, software
9 * distributed under the License is distributed on an "AS IS" BASIS,
10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 * See the License for the specific language governing permissions and
12 * limitations under the License.
13 */
14package org.onosproject.provider.snmp.alarm.impl;
15
16import com.btisystems.pronx.ems.core.snmp.ISnmpConfiguration;
17import com.btisystems.pronx.ems.core.snmp.ISnmpSession;
18import com.btisystems.pronx.ems.core.snmp.ISnmpSessionFactory;
19import java.io.IOException;
20import java.util.HashSet;
21import org.easymock.EasyMock;
22import static org.easymock.EasyMock.expect;
23import static org.easymock.EasyMock.replay;
24import static org.easymock.EasyMock.verify;
25import org.junit.Assert;
26import org.junit.Before;
27import org.junit.Test;
28import org.onosproject.incubator.net.faultmanagement.alarm.AlarmEvent;
29import org.onosproject.net.DeviceId;
30
31public class SnmpDeviceAlarmProviderTest {
32 private SnmpAlarmProviderService alarmProvider;
33 private ISnmpSessionFactory mockSessionFactory;
34 private ISnmpSession mockSession;
35 private SnmpDeviceAlarmProvider mockProvider;
36 private AlarmEvent alarmEvent;
37
38 public SnmpDeviceAlarmProviderTest() {}
39
40 @Before
41 public void setUp() {
42 mockSessionFactory = EasyMock.createMock(ISnmpSessionFactory.class);
43 mockSession = EasyMock.createMock(ISnmpSession.class);
44 mockProvider = EasyMock.createMock(SnmpDeviceAlarmProvider.class);
45
46 alarmProvider = new SnmpAlarmProviderService() {
47 @Override
48 protected ISnmpSessionFactory getSessionFactory() {
49 return mockSessionFactory;
50 }
51 };
52
53 alarmProvider.addAlarmListener((AlarmEvent event) -> {
54 alarmEvent = event;
55 });
56 }
57
58 @Test
59 public void shouldPopulateAlarmsForNetSnmp() throws IOException {
60 alarmProvider.providers.put("1.2.3.4", mockProvider);
61 expect(mockSessionFactory.createSession(EasyMock.isA(ISnmpConfiguration.class),
62 EasyMock.eq("1.1.1.1"))).andReturn(mockSession);
63 expect(mockSession.identifyDevice()).andReturn("1.2.3.4");
64 expect(mockProvider.getAlarms(mockSession, DeviceId.deviceId("snmp:1.1.1.1:161")))
65 .andReturn(new HashSet<>());
66
67 mockSession.close();
68 EasyMock.expectLastCall().once();
69
70 replay(mockSessionFactory, mockSession, mockProvider);
71
72 alarmProvider.triggerProbe(DeviceId.deviceId("snmp:1.1.1.1:161"));
73
74 verify(mockSessionFactory, mockSession, mockProvider);
75 Assert.assertNotNull(alarmEvent);
76 }
77
78}