blob: 789ae893ed04575045eadc4deac0035d67a18595 [file] [log] [blame]
SureshBR0bc64992015-12-03 16:38:02 +05301/*
2 * Copyright 2014-2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.vtnweb.resources;
17
18import static org.easymock.EasyMock.createMock;
19import static org.easymock.EasyMock.expect;
20import static org.easymock.EasyMock.replay;
21import static org.hamcrest.Matchers.is;
22import static org.hamcrest.Matchers.notNullValue;
23import static org.junit.Assert.assertThat;
24import static org.onosproject.net.NetTestTools.device;
25import static org.onosproject.net.NetTestTools.did;
26
Jian Li80cfe452016-01-14 16:04:58 -080027import com.eclipsesource.json.Json;
SureshBR0bc64992015-12-03 16:38:02 +053028import org.junit.After;
29import org.junit.Before;
30import org.junit.Test;
31import org.onlab.osgi.ServiceDirectory;
32import org.onlab.osgi.TestServiceDirectory;
33import org.onlab.rest.BaseResource;
34import org.onosproject.codec.CodecService;
35import org.onosproject.net.Device;
36import org.onosproject.net.DeviceId;
37import org.onosproject.vtnrsc.classifier.ClassifierService;
38import org.onosproject.vtnweb.web.SfcCodecContext;
39
40import com.eclipsesource.json.JsonObject;
41import com.google.common.collect.ImmutableList;
42import com.sun.jersey.api.client.WebResource;
43/**
44 * Unit tests for classifier REST APIs.
45 */
46public class ClassifierResourceTest extends VtnResourceTest {
47
48 final ClassifierService classifierService = createMock(ClassifierService.class);
49
50 /**
51 * Sets up the global values for all the tests.
52 */
53 @Before
54 public void setUpTest() {
55
56 SfcCodecContext context = new SfcCodecContext();
57 ServiceDirectory testDirectory = new TestServiceDirectory().add(ClassifierService.class, classifierService)
58 .add(CodecService.class, context.codecManager());
59 BaseResource.setServiceDirectory(testDirectory);
60
61 }
62
63 /**
64 * Cleans up.
65 */
66 @After
67 public void tearDownTest() {
68 }
69
70 /**
71 * Tests the result of the rest api GET when there are no classifiers.
72 */
73 @Test
74 public void testClassifiersEmpty() {
75
76 expect(classifierService.getClassifiers()).andReturn(null).anyTimes();
77 replay(classifierService);
78 final WebResource rs = resource();
79 final String response = rs.path("classifiers").get(String.class);
80 assertThat(response, is("{\"classifiers\":[]}"));
81 }
82
83 /**
84 * Tests the result of a rest api GET for classifiers.
85 */
86 @Test
87 public void testClassifiers() {
88
89 DeviceId devId1 = did("dev1");
90 Device device1 = device("dev1");
91
92 expect(classifierService.getClassifiers()).andReturn(ImmutableList.of(devId1)).anyTimes();
93 replay(classifierService);
94
95 final WebResource rs = resource();
96 final String response = rs.path("classifiers").get(String.class);
Jian Li80cfe452016-01-14 16:04:58 -080097 final JsonObject result = Json.parse(response).asObject();
SureshBR0bc64992015-12-03 16:38:02 +053098 assertThat(result, notNullValue());
99 }
100}