| /******************************************************************************* |
| * Copyright (c) 2010-2014 SAP AG and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * SAP AG - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.skalli.services.issues; |
| |
| import java.util.Arrays; |
| import java.util.Map; |
| import java.util.SortedSet; |
| |
| import org.eclipse.skalli.commons.CollectionUtils; |
| import org.eclipse.skalli.model.Issue; |
| import org.eclipse.skalli.model.Issuer; |
| import org.eclipse.skalli.model.Severity; |
| import org.eclipse.skalli.testutil.AssertUtils; |
| import org.eclipse.skalli.testutil.PropertyTestUtil; |
| import org.eclipse.skalli.testutil.TestUUIDs; |
| import org.junit.Assert; |
| import org.junit.Test; |
| |
| @SuppressWarnings("nls") |
| public class IssuesTest implements Issuer { |
| |
| private static final Class<? extends Issuer> ISSUER = IssuesTest.class; |
| |
| private static Issue[] ISSUES = new Issue[] { |
| new Issue(Severity.ERROR, ISSUER, TestUUIDs.TEST_UUIDS[1]), |
| new Issue(Severity.FATAL, ISSUER, TestUUIDs.TEST_UUIDS[0]), |
| new Issue(Severity.WARNING, ISSUER, TestUUIDs.TEST_UUIDS[0]), |
| new Issue(Severity.INFO, ISSUER, TestUUIDs.TEST_UUIDS[0]), |
| new Issue(Severity.ERROR, ISSUER, TestUUIDs.TEST_UUIDS[0]) |
| }; |
| |
| @Test |
| public void testPropertyDefinitions() throws Exception { |
| Map<String, Object> values = PropertyTestUtil.getValues(); |
| Map<Class<?>, String[]> requiredProperties = PropertyTestUtil.getRequiredProperties(); |
| values.put(Issues.PROPERTY_ISSUES, CollectionUtils.asSortedSet(ISSUES)); |
| values.put(Issues.PROPERTY_STALE, true); |
| PropertyTestUtil.checkPropertyDefinitions(Issues.class, requiredProperties, values); |
| } |
| |
| @Test |
| public void testGetIssues() { |
| SortedSet<Issue> set = CollectionUtils.asSortedSet(ISSUES); |
| Issues issues = new Issues(TestUUIDs.TEST_UUIDS[0], set); |
| AssertUtils.assertEquals("getIssues(WARNING)", |
| Arrays.asList(ISSUES[1], ISSUES[0], ISSUES[4], ISSUES[2]), |
| issues.getIssues(Severity.WARNING)); |
| AssertUtils.assertEquals("Issues.getIssues(WARNING)", |
| Arrays.asList(ISSUES[1], ISSUES[0], ISSUES[4], ISSUES[2]), |
| Issues.getIssues(set, Severity.WARNING)); |
| AssertUtils.assertEquals("getIssues(FATAL)", |
| Arrays.asList(ISSUES[1]), |
| issues.getIssues(Severity.FATAL)); |
| AssertUtils.assertEquals("getIssues(FATAL)", |
| Arrays.asList(ISSUES[1]), |
| issues.getIssues(Severity.FATAL)); |
| AssertUtils.assertEquals("getIssues(INFO)", |
| Arrays.asList(ISSUES[1], ISSUES[0], ISSUES[4], ISSUES[2], ISSUES[3]), |
| issues.getIssues(Severity.INFO)); |
| Assert.assertTrue(issues.getIssues(null).isEmpty()); |
| } |
| |
| @Test |
| public void testLatestDurations() throws Exception { |
| Issues issues = new Issues(); |
| Assert.assertEquals(0, issues.getLatestDurations().length); |
| Assert.assertEquals(-1L, issues.getLatestDuration()); |
| Assert.assertEquals(-1L, issues.getAverageDuration()); |
| long sum = 0; |
| for (int i = 1; i <= 10; ++i) { |
| if (i > 5) { |
| sum += i; |
| } |
| issues.addLatestDuration(i); |
| Assert.assertEquals(i, issues.getLatestDuration()); |
| if (i==1) { |
| Assert.assertEquals(1L, issues.getAverageDuration()); |
| } |
| } |
| Assert.assertEquals(sum/5, issues.getAverageDuration()); |
| Assert.assertEquals(10, issues.getLatestDuration()); |
| } |
| } |