blob: 3c9e967921034afab4a31749edcd839aca7082e2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.integration;
import com.yahoo.vespa.hosted.controller.api.integration.artifact.Artifact;
import com.yahoo.vespa.hosted.controller.api.integration.artifact.ArtifactRegistry;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author mpolden
*/
public class ArtifactRegistryMock implements ArtifactRegistry {
private static final Comparator<Artifact> comparator = Comparator.comparing(Artifact::registry)
.thenComparing(Artifact::repository)
.thenComparing(Artifact::version);
private final Map<String, Artifact> images = new HashMap<>();
public ArtifactRegistryMock add(Artifact image) {
if (images.containsKey(image.id())) throw new IllegalArgumentException("Image with ID '" + image.id() + "' already exists");
images.put(image.id(), image);
return this;
}
@Override
public void deleteAll(List<Artifact> artifacts) {
artifacts.forEach(image -> this.images.remove(image.id()));
}
@Override
public List<Artifact> list() {
return images.values().stream().sorted(comparator).toList();
}
}
|