// Copyright 2010 Google Inc. All Rights Reseved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.testing.testify.risk.frontend.model;
import com.google.common.collect.Sets;
import junit.framework.TestCase;
/**
* Unit tests for the Bug class.
*
* @author jimr@google.com (Jim Reardon)
*/
public class BugTest extends TestCase {
public void testBugFields() {
Bug testBug = new Bug();
assertEquals(null, testBug.getParentProjectId());
testBug.setParentProjectId(82L);
assertEquals(82, testBug.getParentProjectId().longValue());
assertEquals(0, testBug.getBugGroups().size());
testBug.addBugGroup("group");
assertEquals(1, testBug.getBugGroups().size());
testBug.addBugGroup("group2");
assertEquals(2, testBug.getBugGroups().size());
assertEquals(null, testBug.getBugUrl());
assertEquals(null, testBug.getLinkUrl());
testBug.setBugUrl("http://example/");
assertEquals("http://example/", testBug.getBugUrl());
assertEquals("http://example/", testBug.getLinkUrl());
assertEquals(DatumType.BUGS, testBug.getDatumType());
assertEquals("Bugs", testBug.getDatumType().getPlural());
assertEquals("Bug", testBug.getDatumType().getSingular());
assertTrue(testBug.getDatumType().getFilterTypes().contains("Title"));
assertTrue(testBug.getDatumType().getFilterTypes().contains("Path"));
assertTrue(testBug.getDatumType().getFilterTypes().contains("Labels"));
assertEquals(null, testBug.getExternalId());
testBug.setExternalId(123L);
assertEquals(123, testBug.getExternalId().longValue());
assertEquals(null, testBug.getInternalId());
testBug.setInternalId(456L);
assertEquals(456, testBug.getInternalId().longValue());
assertTrue(testBug.getToolTip().contains("bug is attached"));
assertTrue(testBug.getToolTip().contains("group2"));
assertEquals(null, testBug.getTitle());
assertEquals(null, testBug.getLinkText());
testBug.setTitle("title");
assertEquals("title", testBug.getTitle());
assertEquals("title", testBug.getLinkText());
assertEquals(null, testBug.getSeverity());
testBug.setSeverity(5L);
assertEquals(5, testBug.getSeverity().longValue());
assertEquals(null, testBug.getPriority());
testBug.setPriority(4L);
assertEquals(4, testBug.getPriority().longValue());
assertEquals(null, testBug.getPath());
testBug.setPath("project - sub project");
assertEquals("project - sub project", testBug.getPath());
assertEquals(null, testBug.getTargetAttributeId());
assertEquals(null, testBug.getTargetComponentId());
assertEquals(null, testBug.getTargetCapabilityId());
assertFalse(testBug.isAttachedToAttribute());
assertFalse(testBug.isAttachedToComponent());
assertFalse(testBug.isAttachedToCapability());
testBug.setTargetAttributeId(867L);
testBug.setTargetComponentId(5309L);
testBug.setTargetCapabilityId(555L);
assertEquals(867, testBug.getTargetAttributeId().longValue());
assertEquals(5309, testBug.getTargetComponentId().longValue());
assertEquals(555, testBug.getTargetCapabilityId().longValue());
assertTrue(testBug.isAttachedToAttribute());
assertTrue(testBug.isAttachedToComponent());
assertTrue(testBug.isAttachedToCapability());
assertEquals(null, testBug.getState());
assertEquals(null, testBug.getStateDate());
testBug.setState("Open");
testBug.setStateDate(123123123L);
assertEquals("Open", testBug.getState());
assertEquals(123123123, testBug.getStateDate().longValue());
}
public void testGroupRemoveAndSet() {
Bug bug = new Bug();
bug.addBugGroup("group1");
bug.addBugGroup("group2");
bug.addBugGroup("group3");
assertEquals(3, bug.getBugGroups().size());
bug.removeBugGroup("group2");
assertEquals(2, bug.getBugGroups().size());
assertTrue(!bug.getGroupsAsCommaSeparatedList().contains("group2"));
bug.setBugGroups(Sets.newHashSet("new1", "new2", "new3"));
assertTrue(!bug.getGroupsAsCommaSeparatedList().contains("group1"));
assertTrue(!bug.getGroupsAsCommaSeparatedList().contains("group3"));
assertTrue(bug.getGroupsAsCommaSeparatedList().contains("new1"));
assertTrue(bug.getGroupsAsCommaSeparatedList().contains("new2"));
assertTrue(bug.getGroupsAsCommaSeparatedList().contains("new3"));
assertEquals(3, bug.getBugGroups().size());
}
public void testGetField() {
Bug testBug = new Bug();
testBug.setTitle("my title");
testBug.setPath("my path");
testBug.addBugGroup("my label1");
testBug.addBugGroup("my label2");
assertEquals("my title", testBug.getField("Title"));
assertEquals("my path", testBug.getField("Path"));
assertTrue(testBug.getField("Labels").contains("my label1"));
assertTrue(testBug.getField("Labels").contains("my label2"));
assertEquals(null, testBug.getField("nx field"));
}
public void testGroupsAsCommaSeparatedList() {
Bug testBug = new Bug();
testBug.addBugGroup("alpha");
testBug.addBugGroup("beta");
testBug.addBugGroup("gamma");
// The order in which items are retrieved from a set is unpredictable, so we just look
// for items individually.
String groupList = testBug.getGroupsAsCommaSeparatedList();
assertTrue(groupList.contains("alpha"));
assertTrue(groupList.contains("beta"));
assertTrue(groupList.contains("gamma"));
assertEquals(3, groupList.split(",").length);
}
}