Removed hardcoded model from BMv2 driver
Now it uses the model stored in device annotations. Also refactored flow
rule translator classes to reflect this change.
Change-Id: I46541bcc2ab5a267eef4becb6250b9a99684056a
diff --git a/drivers/bmv2/src/test/java/org/onosproject/drivers/bmv2/Bmv2DefaultFlowRuleTranslatorTest.java b/drivers/bmv2/src/test/java/org/onosproject/drivers/bmv2/Bmv2DefaultFlowRuleTranslatorTest.java
index 7b1b215..2f19696 100644
--- a/drivers/bmv2/src/test/java/org/onosproject/drivers/bmv2/Bmv2DefaultFlowRuleTranslatorTest.java
+++ b/drivers/bmv2/src/test/java/org/onosproject/drivers/bmv2/Bmv2DefaultFlowRuleTranslatorTest.java
@@ -16,7 +16,10 @@
package org.onosproject.drivers.bmv2;
+import com.eclipsesource.json.Json;
+import com.eclipsesource.json.JsonObject;
import com.google.common.testing.EqualsTester;
+import org.junit.Before;
import org.junit.Test;
import org.onlab.packet.MacAddress;
import org.onosproject.bmv2.api.model.Bmv2Model;
@@ -26,6 +29,7 @@
import org.onosproject.core.DefaultApplicationId;
import org.onosproject.drivers.bmv2.translators.Bmv2DefaultFlowRuleTranslator;
import org.onosproject.drivers.bmv2.translators.Bmv2FlowRuleTranslator;
+import org.onosproject.drivers.bmv2.translators.Bmv2SimpleTranslatorConfig;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
import org.onosproject.net.flow.DefaultFlowRule;
@@ -35,6 +39,10 @@
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.util.Random;
import static org.hamcrest.CoreMatchers.equalTo;
@@ -46,9 +54,30 @@
*/
public class Bmv2DefaultFlowRuleTranslatorTest {
+ private static final String JSON_CONFIG_PATH = "/simple.json";
private Random random = new Random();
- private Bmv2FlowRuleTranslator translator = new Bmv2DefaultFlowRuleTranslator();
- private Bmv2Model model = translator.config().model();
+ private Bmv2Model model;
+ private Bmv2FlowRuleTranslator.TranslatorConfig config;
+ private Bmv2FlowRuleTranslator translator;
+
+ @Before
+ public void setUp() throws Exception {
+ InputStream inputStream = Bmv2SimpleTranslatorConfig.class
+ .getResourceAsStream(JSON_CONFIG_PATH);
+ InputStreamReader reader = new InputStreamReader(inputStream);
+ BufferedReader bufReader = new BufferedReader(reader);
+ JsonObject json = null;
+ try {
+ json = Json.parse(bufReader).asObject();
+ } catch (IOException e) {
+ throw new RuntimeException("Unable to parse JSON file: " + e.getMessage());
+ }
+
+ this.model = Bmv2Model.parse(json);
+ this.config = new Bmv2SimpleTranslatorConfig(model);
+ this.translator = new Bmv2DefaultFlowRuleTranslator(config);
+
+ }
@Test