From 51c580ed0ec8b3007bf2c60d8649b1594dfa40c5 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Tue, 13 Oct 2015 11:20:11 +0200 Subject: [PATCH] Implement equals/hashCode for Filters --- .../github/dockerjava/api/model/Filters.java | 17 ++++++++ .../dockerjava/api/model/FiltersTest.java | 43 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 src/test/java/com/github/dockerjava/api/model/FiltersTest.java diff --git a/src/main/java/com/github/dockerjava/api/model/Filters.java b/src/main/java/com/github/dockerjava/api/model/Filters.java index b912b541a..227545e22 100644 --- a/src/main/java/com/github/dockerjava/api/model/Filters.java +++ b/src/main/java/com/github/dockerjava/api/model/Filters.java @@ -92,6 +92,22 @@ private static List labelsMapToList(Map labels) { return result; } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Filters filters1 = (Filters) o; + + return filters.equals(filters1.filters); + + } + + @Override + public int hashCode() { + return filters.hashCode(); + } + @Override public String toString() { try { @@ -100,4 +116,5 @@ public String toString() { throw new RuntimeException(e); } } + } diff --git a/src/test/java/com/github/dockerjava/api/model/FiltersTest.java b/src/test/java/com/github/dockerjava/api/model/FiltersTest.java new file mode 100644 index 000000000..1572553e6 --- /dev/null +++ b/src/test/java/com/github/dockerjava/api/model/FiltersTest.java @@ -0,0 +1,43 @@ +package com.github.dockerjava.api.model; + +import com.google.common.collect.Maps; +import org.testng.annotations.Test; + +import java.util.Map; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotSame; + +/** + * @author Vincent Latombe + */ +public class FiltersTest { + + @Test + public void newFiltersShouldBeEquals() { + assertEquals(new Filters(), new Filters()); + } + + @Test + public void filtersWithEqualContentShouldBeEquals() { + assertEquals(new Filters().withContainers("foo"), new Filters().withContainers("foo")); + assertEquals(new Filters().withLabels("alpha=val"), new Filters().withLabels("alpha=val")); + } + + @Test + public void withLabelsMapShouldBeEquivalentToVarargs() { + Map map = Maps.newHashMap(); + map.put("alpha", "val"); + assertEquals(new Filters().withLabels("alpha=val"), new Filters().withLabels(map)); + + map = Maps.newHashMap(); + map.put("alpha", "val"); + map.put("beta", "val1"); + assertEquals(new Filters().withLabels("alpha=val", "beta=val1"), new Filters().withLabels(map)); + } + + @Test + public void filtersWithDifferentContentShouldntBeEquals() { + assertNotSame(new Filters().withContainers("foo"), new Filters().withContainers("bar")); + } +}