diff options
author | Martin Polden <mpolden@mpolden.no> | 2018-06-08 14:35:17 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2018-06-08 15:01:29 +0200 |
commit | 607f4e032f0b2113a2efcf82b58c9c4407912774 (patch) | |
tree | 0c85495d0620e320f41a1444261798fe8ef327e6 /controller-api | |
parent | da5ee91aaf26b33bd4352ebe992829afa0ad145b (diff) |
Allow issues in mock to be inspected
Diffstat (limited to 'controller-api')
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/MockOrganization.java | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/MockOrganization.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/MockOrganization.java index 5584f8a95fb..96ee9ecd052 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/MockOrganization.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/MockOrganization.java @@ -15,12 +15,15 @@ import java.util.Map; import java.util.Optional; import java.util.concurrent.atomic.AtomicLong; +/** + * @author jvenstad + */ public class MockOrganization implements Organization { private final Clock clock; - private final AtomicLong counter; - private final HashMap<IssueId, WrappedIssue> issues; - private final HashMap<PropertyId, PropertyInfo> properties; + private final AtomicLong counter = new AtomicLong(); + private final Map<IssueId, MockIssue> issues = new HashMap<>(); + private final Map<PropertyId, PropertyInfo> properties = new HashMap<>(); @Inject @SuppressWarnings("unused") @@ -30,25 +33,21 @@ public class MockOrganization implements Organization { public MockOrganization(Clock clock) { this.clock = clock; - - counter = new AtomicLong(); - issues = new HashMap<>(); - properties = new HashMap<>(); } @Override public IssueId file(Issue issue) { IssueId issueId = IssueId.from("" + counter.incrementAndGet()); - issues.put(issueId, new WrappedIssue(issue)); + issues.put(issueId, new MockIssue(issue)); return issueId; } @Override public Optional<IssueId> findBySimilarity(Issue issue) { return issues.entrySet().stream() - .filter(entry -> entry.getValue().issue.summary().equals(issue.summary())) - .findFirst() - .map(Map.Entry::getKey); + .filter(entry -> entry.getValue().issue.summary().equals(issue.summary())) + .findFirst() + .map(Map.Entry::getKey); } @Override @@ -103,6 +102,10 @@ public class MockOrganization implements Organization { return URI.create("www.properties.tld/" + propertyId.id()); } + public Map<IssueId, MockIssue> issues() { + return Collections.unmodifiableMap(issues); + } + public void close(IssueId issueId) { issues.get(issueId).open = false; touch(issueId); @@ -125,21 +128,24 @@ public class MockOrganization implements Organization { } - private class WrappedIssue { + public class MockIssue { private Issue issue; private Instant updated; private boolean open; private User assignee; - private WrappedIssue(Issue issue) { + private MockIssue(Issue issue) { this.issue = issue; - - updated = clock.instant(); - open = true; - assignee = issue.assignee().orElse(properties.get(issue.propertyId()).defaultAssignee); + this.updated = clock.instant(); + this.open = true; + this.assignee = issue.assignee().orElse(properties.get(issue.propertyId()).defaultAssignee); } + public Issue issue() { return issue; } + public User assignee() { return assignee; } + public boolean isOpen() { return open; } + } |