Skip to content

Commit 1d97a1e

Browse files
committed
Create records instead of mocks in tests
1 parent b86284a commit 1d97a1e

13 files changed

Lines changed: 124 additions & 144 deletions

containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/core/DockerConnectionTest.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionFactory;
2929
import org.eclipse.linuxtools.internal.docker.ui.testutils.MockImageFactory;
3030
import org.junit.Test;
31-
3231
import org.mandas.docker.client.DockerClient;
3332
import org.mandas.docker.client.exceptions.DockerCertificateException;
3433
import org.mandas.docker.client.messages.Container;
@@ -42,8 +41,8 @@ public class DockerConnectionTest {
4241
@Test
4342
public void shouldLoadContainers() throws DockerException {
4443
// given
45-
final Container fooContainer = MockContainerFactory.id("foo").build();
46-
final Container barContainer = MockContainerFactory.id("bar").build();
44+
final Container fooContainer = MockContainerFactory.of("foo");
45+
final Container barContainer = MockContainerFactory.of("bar");
4746
final DockerClient client = MockDockerClientFactory.container(fooContainer).container(barContainer).build();
4847
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).withDefaultTCPConnectionSettings();
4948
dockerConnection.open(false);
@@ -56,9 +55,9 @@ public void shouldLoadContainers() throws DockerException {
5655
@Test
5756
public void shouldLoadImages() throws DockerException {
5857
// given
59-
final Image fooImage = MockImageFactory.id("foo").build();
60-
final Image barImage = MockImageFactory.id("bar").build();
61-
final DockerClient client = MockDockerClientFactory.image(fooImage).image(barImage).build();
58+
final Image fooImage = MockImageFactory.of("foo");
59+
final Image barImage = MockImageFactory.of("bar");
60+
final DockerClient client = MockDockerClientFactory.images(fooImage).image(barImage).build();
6261
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).withDefaultTCPConnectionSettings();
6362
dockerConnection.open(false);
6463
// when
@@ -71,9 +70,9 @@ public void shouldLoadImages() throws DockerException {
7170
@Test
7271
public void hasImageTest() throws DockerException {
7372
// given
74-
final Image fooImage = MockImageFactory.id("foo")
75-
.name("foo", "foo:latest", "foo:1.0", "org/foo", "org/foo:1.0", "org/foo:latest").build();
76-
final DockerClient client = MockDockerClientFactory.image(fooImage).build();
73+
final Image fooImage = MockImageFactory.of("foo",
74+
List.of("foo", "foo:latest", "foo:1.0", "org/foo", "org/foo:1.0", "org/foo:latest"));
75+
final DockerClient client = MockDockerClientFactory.images(fooImage).build();
7776
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client)
7877
.withDefaultTCPConnectionSettings();
7978
// when

containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/core/DockerImageQualifierTestCase.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import org.junit.runners.Parameterized;
3333
import org.junit.runners.Parameterized.Parameter;
3434
import org.junit.runners.Parameterized.Parameters;
35-
3635
import org.mandas.docker.client.DockerClient;
3736
import org.mandas.docker.client.messages.Image;
3837

@@ -74,18 +73,17 @@ public List<Object[]> toList() {
7473
public static Collection<Object[]> getData() {
7574
final ParameterizedDataset dataset = new ParameterizedDataset();
7675
// top level because it has a repo and a tag
77-
dataset.add(TOP_LEVEL, MockImageFactory.id("foo").name("foo:latest").build());
78-
dataset.add(TOP_LEVEL, MockImageFactory.id("foo").name("foo:latest", "foo:1.0").build());
76+
dataset.add(TOP_LEVEL, MockImageFactory.of("foo", "", "foo:latest"));
77+
dataset.add(TOP_LEVEL, MockImageFactory.of("foo", "", "foo:latest", "foo:1.0"));
7978
// top level because it has a name
80-
dataset.add(TOP_LEVEL, MockImageFactory.id("foo").name("foo:<none>").build());
79+
dataset.add(TOP_LEVEL, MockImageFactory.of("foo", "", "foo:<none>"));
8180
// intermediate because it has a child image
82-
dataset.add(INTERMEDIATE, MockImageFactory.id("foo").name("<none>:<none>").build(),
83-
MockImageFactory.id("bar").parentId("foo").name("bar:latest").build());
84-
dataset.add(INTERMEDIATE, MockImageFactory.id("foo").build(),
85-
MockImageFactory.id("bar").parentId("foo").name("bar:latest").build());
81+
dataset.add(INTERMEDIATE, MockImageFactory.of("foo", "", "<none>:<none>"),
82+
MockImageFactory.of("bar", "foo", "bar:latest"));
83+
dataset.add(INTERMEDIATE, MockImageFactory.of("foo"), MockImageFactory.of("bar", "foo", "bar:latest"));
8684
// dangling because untagged because it is a leaf
87-
dataset.add(DANGLING, MockImageFactory.id("foo").name("<none>:<none>").build());
88-
dataset.add(DANGLING, MockImageFactory.id("foo").build());
85+
dataset.add(DANGLING, MockImageFactory.of("foo", "", "<none>:<none>"));
86+
dataset.add(DANGLING, MockImageFactory.of("foo"));
8987
return dataset.toList();
9088
}
9189

containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/commands/CommandUtilsSWTBotTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,6 @@
3636
import org.junit.Test;
3737
import org.mandas.docker.client.DockerClient;
3838

39-
/**
40-
*
41-
*/
4239
public class CommandUtilsSWTBotTest {
4340

4441
private SWTWorkbenchBot bot = new SWTWorkbenchBot();
@@ -204,7 +201,7 @@ public void shouldRetrieveConnectionFromSelectedContainerPort() {
204201
@Test
205202
public void shouldRetrieveConnectionFromSelectedImagesCategory() {
206203
// given
207-
final DockerClient client = MockDockerClientFactory.image(MockImageFactory.name("foo").build())
204+
final DockerClient client = MockDockerClientFactory.images(MockImageFactory.of("", "", "foo"))
208205
.build();
209206
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).withDefaultTCPConnectionSettings();
210207
DockerConnectionManagerUtils.configureConnectionManager(dockerConnection);
@@ -218,7 +215,7 @@ public void shouldRetrieveConnectionFromSelectedImagesCategory() {
218215
@Test
219216
public void shouldRetrieveConnectionFromSelectedImage() {
220217
// given
221-
final DockerClient client = MockDockerClientFactory.image(MockImageFactory.name("foo").build())
218+
final DockerClient client = MockDockerClientFactory.images(MockImageFactory.of("", "", "foo"))
222219
.build();
223220
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).withDefaultTCPConnectionSettings();
224221
DockerConnectionManagerUtils.configureConnectionManager(dockerConnection);

containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/testutils/MockContainerFactory.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.ArrayList;
1717
import java.util.Date;
1818
import java.util.List;
19+
import java.util.Map;
1920
import java.util.Random;
2021
import java.util.stream.Collectors;
2122
import java.util.stream.IntStream;
@@ -30,8 +31,13 @@
3031
*/
3132
public class MockContainerFactory {
3233

33-
public static Builder id(final String id) {
34-
return new Builder().id(id);
34+
public static Container of(final String id) {
35+
return new Container(id, List.of(), "", "", "", 0L, "", "", List.of(), Map.of(), 0L, 0L, null, List.of());
36+
}
37+
38+
public static Container of(final String id, String imageName, String status, String... names) {
39+
return new Container(id, List.of(names), imageName, "", "", 0L, "", status, List.of(), Map.of(), 0L, 0L, null,
40+
List.of());
3541
}
3642

3743
public static Builder name(final String repoTag, final String... otherRepoTags) {
@@ -48,11 +54,6 @@ private Builder() {
4854
this.container = Mockito.mock(Container.class);
4955
}
5056

51-
private Builder id(final String id) {
52-
Mockito.when(this.container.id()).thenReturn(id);
53-
return this;
54-
}
55-
5657
private Builder randomId() {
5758
// generate a random id for the container
5859
final String id = IntStream.range(0, 12)

containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/testutils/MockDockerClientFactory.java

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
import org.eclipse.linuxtools.docker.core.IDockerContainer;
2626
import org.eclipse.linuxtools.docker.core.IDockerContainerInfo;
2727
import org.eclipse.linuxtools.docker.core.IDockerImage;
28-
import org.mockito.ArgumentMatchers;
29-
import org.mockito.Mockito;
30-
3128
import org.mandas.docker.client.DockerClient;
3229
import org.mandas.docker.client.exceptions.DockerException;
3330
import org.mandas.docker.client.messages.Container;
@@ -36,6 +33,8 @@
3633
import org.mandas.docker.client.messages.ImageInfo;
3734
import org.mandas.docker.client.messages.ImageSearchResult;
3835
import org.mandas.docker.client.messages.Info;
36+
import org.mockito.ArgumentMatchers;
37+
import org.mockito.Mockito;
3938

4039
/**
4140
* Factory for mocked {@link IDockerConnection}
@@ -46,26 +45,15 @@ public class MockDockerClientFactory {
4645
* @return an {@link DockerClient} with no {@link IDockerImage} and no {@link IDockerContainer}.
4746
*/
4847
public static DockerClient build() {
49-
return image(null).build();
50-
}
51-
52-
/**
53-
* @param images
54-
* the {@link Image} to use to build the {@link DockerClient}
55-
* @return a {@link Builder} to build a {@link DockerClient}
56-
*/
57-
public static Builder image(final Image image) {
58-
final Builder builder = new Builder();
59-
builder.image(image);
60-
return builder;
48+
return images().build();
6149
}
6250

6351
/**
6452
* @param images
6553
* the {@link Image} to use to build the {@link DockerClient}
6654
* @return a {@link Builder} to build a {@link DockerClient}
6755
*/
68-
public static Builder images(final Image[] images) {
56+
public static Builder images(final Image... images) {
6957
final Builder builder = new Builder();
7058
Stream.of(images).forEach(i -> builder.image(i));
7159
return builder;
@@ -125,8 +113,47 @@ public static class Builder {
125113
private Builder() {
126114
this.dockerClient = Mockito.mock(DockerClient.class);
127115
try {
128-
final Info info = Mockito.mock(Info.class);
129-
Mockito.when(info.memTotal()).thenReturn(1024L);
116+
final Info info = new Info( "",
117+
"",
118+
"",
119+
0,
120+
0,
121+
0,
122+
0,
123+
false,
124+
false,
125+
false,
126+
"",
127+
"",
128+
List.of(),
129+
false,
130+
"",
131+
"",
132+
"",
133+
false,
134+
0,
135+
"",
136+
"",
137+
"",
138+
"",
139+
List.of(), 1024L,
140+
false,
141+
0,
142+
0,
143+
0,
144+
0,
145+
"",
146+
"",
147+
false,
148+
"",
149+
"",
150+
"",
151+
null,
152+
null,
153+
"",
154+
false,
155+
null,
156+
List.of(), null);
130157
Mockito.when(dockerClient.info()).thenReturn(info);
131158
} catch (DockerException | InterruptedException e) {
132159
// ignore while setting-up the mock instance
@@ -199,7 +226,7 @@ public DockerClient build() {
199226
*/
200227
public static void addContainer(DockerClient dockerClient, Container container, ContainerInfo containerInfo) {
201228
try {
202-
final List<Container> containers = dockerClient.listContainers(new DockerClient.ListContainersParam[0]);
229+
final List<Container> containers = dockerClient.listContainers();
203230
containers.add(container);
204231
Mockito.when(dockerClient.inspectContainer(container.id())).thenReturn(containerInfo);
205232
Mockito.when(dockerClient.listContainers(ArgumentMatchers.any())).thenReturn(containers);

containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/testutils/MockImageFactory.java

Lines changed: 10 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -13,71 +13,30 @@
1313

1414
package org.eclipse.linuxtools.internal.docker.ui.testutils;
1515

16-
import java.util.ArrayList;
1716
import java.util.Date;
1817
import java.util.List;
19-
import java.util.Random;
20-
import java.util.stream.Collectors;
21-
import java.util.stream.IntStream;
22-
import java.util.stream.Stream;
18+
import java.util.Map;
2319

2420
import org.mandas.docker.client.messages.Image;
25-
import org.mockito.Mockito;
2621

2722
/**
2823
* A factory for mock {@link Image}s.
2924
*/
3025
public class MockImageFactory {
3126

32-
public static final char[] HEXA = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
27+
public static final char[] HEXA = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e',
28+
'f' };
3329

34-
public static Builder id(final String id) {
35-
return new Builder().id(id);
30+
public static Image of(final String id) {
31+
return new Image(Long.toString(new Date().getTime()), id, "", List.of(), List.of(), 0L, 0L, Map.of());
3632
}
3733

38-
public static Builder name(final String repoTag, final String... otherRepoTags) {
39-
return new Builder().randomId().name(repoTag, otherRepoTags);
34+
public static Image of(final String id, final List<String> names) {
35+
return new Image(Long.toString(new Date().getTime()), id, "", names, List.of(), 0L, 0L, Map.of());
4036
}
4137

42-
public static class Builder {
43-
44-
private final Image image;
45-
46-
private Builder() {
47-
this.image = Mockito.mock(Image.class);
48-
}
49-
50-
private Builder id(final String id) {
51-
Mockito.when(this.image.id()).thenReturn(id);
52-
return this;
53-
}
54-
55-
private Builder randomId() {
56-
// generate a random id for the images
57-
final String id = IntStream.range(0, 12)
58-
.mapToObj(i -> Character.valueOf(HEXA[new Random().nextInt(16)]).toString())
59-
.collect(Collectors.joining());
60-
Mockito.when(this.image.id()).thenReturn(id);
61-
return this;
62-
}
63-
64-
public Builder name(final String repoTag, final String... otherRepoTags) {
65-
final List<String> repoTags = new ArrayList<>();
66-
repoTags.add(repoTag);
67-
Stream.of(otherRepoTags).forEach(r -> repoTags.add(r));
68-
Mockito.when(this.image.repoTags()).thenReturn(List.copyOf(repoTags));
69-
Mockito.when(this.image.created()).thenReturn(Long.toString(new Date().getTime()));
70-
return this;
71-
}
72-
73-
public Builder parentId(final String parentId) {
74-
Mockito.when(this.image.parentId()).thenReturn(parentId);
75-
return this;
76-
}
77-
78-
public Image build() {
79-
return image;
80-
}
38+
public static Image of(final String id, String parentId, String... names) {
39+
return new Image(Long.toString(new Date().getTime()), id, parentId, List.of(names), List.of(), 0L, 0L,
40+
Map.of());
8141
}
82-
8342
}

containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerContainersViewSWTBotTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void setup() {
6969
this.bot = new SWTWorkbenchBot();
7070
final DockerClient client = MockDockerClientFactory
7171
.container(MockContainerFactory.name("defaultcon").status("Running").build())
72-
.image(MockImageFactory.id("987654321abcde").name("default:1").build()).build();
72+
.image(MockImageFactory.of("987654321abcde", "", "default:1")).build();
7373
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Default", client)
7474
.withDefaultTCPConnectionSettings();
7575
dockerConnection.removeContainerListener(DockerContainerRefreshManager.getInstance());

containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public void shouldRefreshImagesAndShowChanges() {
167167
final SWTBotTreeItem imagesTreeItem = SWTUtils.expand(connection, "Images");
168168
Assertions.assertThat(imagesTreeItem.getItems().length).isEqualTo(0);
169169
// update the client
170-
final DockerClient updatedClient = MockDockerClientFactory.image(MockImageFactory.name("foo/bar").build())
170+
final DockerClient updatedClient = MockDockerClientFactory.images(MockImageFactory.of("foo/bar"))
171171
.build();
172172
dockerConnection.setClient(updatedClient);
173173
// when locating the 'Images' node and hit refresh
@@ -495,8 +495,8 @@ public void shouldProvideDisabledRemoveCommandOnMultipleContainersAtOnce() {
495495
@Test
496496
public void shouldProvideEnabledRemoveCommandOnMultipleImagesAtOnce() {
497497
// given
498-
final DockerClient client = MockDockerClientFactory.image(MockImageFactory.name("angry_bar").build())
499-
.image(MockImageFactory.name("gentle_foo").build()).build();
498+
final DockerClient client = MockDockerClientFactory
499+
.images(MockImageFactory.of("angry_bar"), MockImageFactory.of("gentle_foo")).build();
500500
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client)
501501
.withDefaultTCPConnectionSettings();
502502
DockerConnectionManagerUtils.configureConnectionManager(dockerConnection);
@@ -552,7 +552,7 @@ public void shouldShowSelectedContainerInPropertiesView() {
552552
@Test
553553
public void shouldShowSelectedImageInPropertiesView() {
554554
// given
555-
final DockerClient client = MockDockerClientFactory.image(MockImageFactory.name("angry_bar").build()).build();
555+
final DockerClient client = MockDockerClientFactory.images(MockImageFactory.of("angry_bar")).build();
556556
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client)
557557
.withDefaultTCPConnectionSettings();
558558
DockerConnectionManagerUtils.configureConnectionManager(dockerConnection);
@@ -575,7 +575,7 @@ public void shouldShowSelectedImageInPropertiesView() {
575575
@Test
576576
public void shouldRemoveListenersWhenClosingView() {
577577
// given
578-
final DockerClient client = MockDockerClientFactory.image(MockImageFactory.name("angry_bar").build())
578+
final DockerClient client = MockDockerClientFactory.images(MockImageFactory.of("angry_bar"))
579579
.container(MockContainerFactory.name("angry_bar").status("Stopped").build()).build();
580580
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client)
581581
.withDefaultTCPConnectionSettings();
@@ -595,8 +595,8 @@ public void shouldRemoveListenersWhenClosingView() {
595595
@Test
596596
public void shouldShowAllImageVariants() {
597597
// given
598-
final DockerClient client = MockDockerClientFactory.image(
599-
MockImageFactory.id("1a2b3c4d5e6f7g").name("foo:1.0", "foo:latest", "bar:1.0", "bar:latest").build())
598+
final DockerClient client = MockDockerClientFactory.images(
599+
MockImageFactory.of("1a2b3c4d5e6f7g", "", "foo:1.0", "foo:latest", "bar:1.0", "bar:latest"))
600600
.build();
601601
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client)
602602
.withDefaultTCPConnectionSettings();

0 commit comments

Comments
 (0)