diff --git a/core/common/src/test/java/org/onosproject/codec/impl/ConstraintCodecTest.java b/core/common/src/test/java/org/onosproject/codec/impl/ConstraintCodecTest.java
index 2a47d11..48c4817 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/ConstraintCodecTest.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/ConstraintCodecTest.java
@@ -134,7 +134,7 @@
         assertThat(constraint, instanceOf(BandwidthConstraint.class));
 
         BandwidthConstraint bandwidthConstraint = (BandwidthConstraint) constraint;
-        assertThat(bandwidthConstraint.bandwidth().toDouble(), is(345.678D));
+        assertThat(bandwidthConstraint.bandwidth().bps(), is(345.678D));
     }
 
     /**
diff --git a/core/common/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java b/core/common/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java
index 2f93396..0c2f097 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java
@@ -63,7 +63,6 @@
 import org.onosproject.net.intent.constraint.LatencyConstraint;
 import org.onosproject.net.intent.constraint.ObstacleConstraint;
 import org.onosproject.net.intent.constraint.WaypointConstraint;
-import org.onosproject.net.resource.link.BandwidthResource;
 import org.onosproject.net.resource.link.LambdaResource;
 
 import com.fasterxml.jackson.databind.JsonNode;
@@ -181,7 +180,7 @@
 
         final List<Constraint> constraints =
                 ImmutableList.of(
-                        new BandwidthConstraint(new BandwidthResource(Bandwidth.bps(1.0))),
+                        new BandwidthConstraint(Bandwidth.bps(1.0)),
                         new LambdaConstraint(LambdaResource.valueOf(3)),
                         new AnnotationConstraint("key", 33.0),
                         new AsymmetricPathConstraint(),
diff --git a/core/common/src/test/java/org/onosproject/codec/impl/IntentJsonMatcher.java b/core/common/src/test/java/org/onosproject/codec/impl/IntentJsonMatcher.java
index e485a5f..3adfcff 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/IntentJsonMatcher.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/IntentJsonMatcher.java
@@ -141,7 +141,7 @@
         final JsonNode bandwidthJson = constraintJson.get("bandwidth");
         return bandwidthJson != null
                 && constraintJson.get("bandwidth").asDouble()
-                == bandwidthConstraint.bandwidth().toDouble();
+                == bandwidthConstraint.bandwidth().bps();
     }
 
     /**
