// 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.Lists;
import junit.framework.TestCase;
import java.util.List;
/**
* Unit tests for the Component class.
*
* @author jimr@google.com (Jim Reardon)
*/
public class ComponentTest extends TestCase {
public void testComponentFields() {
Long currentTime = 0 - System.currentTimeMillis();
Component component = new Component(42L);
assertEquals(42, component.getParentProjectId());
component.setParentProjectId(43);
assertEquals(43, component.getParentProjectId());
assertEquals(null, component.getComponentId());
assertEquals(null, component.getId());
component.setComponentId(82);
assertEquals(82, component.getComponentId().longValue());
assertEquals(82, component.getId().longValue());
assertEquals(null, component.getName());
component.setName("my favorite component");
assertEquals("my favorite component", component.getName());
assertTrue(component.getDisplayOrder() <= currentTime);
component.setDisplayOrder(5);
assertEquals(5, component.getDisplayOrder());
assertEquals(AccElementType.COMPONENT, component.getElementType());
AccLabel label = new AccLabel();
label.setLabelText("demo");
component.addLabel(label);
assertEquals(1, component.getAccLabels().size());
assertEquals("", component.getDescription());
component.setDescription("hello");
assertEquals("hello", component.getDescription());
component.setDescription("new hello");
assertEquals("new hello", component.getDescription());
assertEquals("demo", component.getAccLabels().get(0).getLabelText());
}
public void testRetrieveLabelById() {
Component component = new Component();
AccLabel label = new AccLabel();
label.setLabelText("hello");
component.addLabel(label);
label = new AccLabel();
label.setLabelText("is it me you're looking for");
label.setId("2");
component.addLabel(label);
label = new AccLabel();
label.setLabelText("i can see it in your smile");
label.setId("3");
component.addLabel(label);
label = new AccLabel();
label.setId("4");
component.addLabel(label);
label = component.getAccLabel("2");
assertEquals(label.getLabelText(), "is it me you're looking for");
label = component.getAccLabel("my endless love");
assertEquals(null, label);
component.updateLabel("i can see it in your smile", "i can see it in your eyes");
assertEquals("i can see it in your eyes",
component.getAccLabel("3").getLabelText());
}
public void testSetAccLabelsAndRemove() {
AccLabel label = new AccLabel();
label.setLabelText("one");
AccLabel label2 = new AccLabel();
label2.setLabelText("two");
List<AccLabel> labels = Lists.newArrayList(
label, label2);
Component component = new Component();
component.setAccLabels(labels);
assertEquals(2, component.getAccLabels().size());
AccLabel delete = new AccLabel();
delete.setLabelText("two");
component.removeLabel(delete);
assertEquals(1, component.getAccLabels().size());
assertEquals("one", component.getAccLabels().get(0).getLabelText());
label2.setId("id");
component.addLabel(label2);
assertEquals(2, component.getAccLabels().size());
delete.setLabelText(null);
delete.setId("id");
component.removeLabel(delete);
assertEquals(1, component.getAccLabels().size());
assertEquals("one", component.getAccLabels().get(0).getLabelText());
}
public void testLabels() {
Component component = new Component(0L);
assertEquals(null, component.getComponentId());
assertEquals(0, component.getAccLabels().size());
component.addLabel("dev owner");
assertEquals(1, component.getAccLabels().size());
assertEquals("dev owner", component.getAccLabels().get(0).getLabelText());
}
public void testTwoStateLabel() {
Component component = new Component(42L);
assertEquals(null, component.getComponentId());
component.setComponentId(82L);
assertEquals(0, component.getAccLabels().size());
component.addLabel("One State");
component.addLabel("Two State-Hello");
component.addLabel("Two State Separate", "Yes");
assertEquals(3, component.getAccLabels().size());
AccLabel label = component.getAccLabels().get(0);
assertEquals(82, label.getElementId().longValue());
assertEquals("One State", label.getLabelText());
assertEquals(42, label.getProjectId().longValue());
assertEquals(AccElementType.COMPONENT, label.getElementType());
assertEquals("Component", label.getElementType().getFriendlyName());
label = component.getAccLabels().get(1);
assertEquals("Two State-Hello", label.getLabelText());
assertEquals("Two State", label.getName());
assertEquals("Hello", label.getValue());
assertEquals(42, label.getProjectId().longValue());
assertEquals(82, label.getElementId().longValue());
assertEquals(AccElementType.COMPONENT, label.getElementType());
label = component.getAccLabels().get(2);
assertEquals("Two State Separate-Yes", label.getLabelText());
assertEquals("Two State Separate", label.getName());
assertEquals("Yes", label.getValue());
component.removeLabel("doesn't exist");
assertEquals(3, component.getAccLabels().size());
component.removeLabel("Two State Separate-Yes");
assertEquals(2, component.getAccLabels().size());
component.removeLabel("doesn't", "exist");
assertEquals(2, component.getAccLabels().size());
component.removeLabel("Two State", "Hello");
assertEquals(1, component.getAccLabels().size());
}
public void testEdgeCaseLabels() {
Component component = new Component(42L);
assertEquals(null, component.getComponentId());
assertEquals(0, component.getAccLabels().size());
component.addLabel("");
component.addLabel("-");
component.addLabel("Two State-");
assertEquals(3, component.getAccLabels().size());
assertEquals("", component.getAccLabels().get(0).getLabelText());
assertEquals("-", component.getAccLabels().get(1).getLabelText());
assertEquals("Two State-", component.getAccLabels().get(2).getLabelText());
}
public void testLabelSetNameValueAndNullText() {
AccLabel label = new AccLabel();
label.setId("id");
label.setName("name");
label.setValue("value");
assertEquals("id", label.getId());
assertEquals("name", label.getName());
assertEquals("value", label.getValue());
label.setLabelText(null);
assertEquals("id", label.getId());
assertEquals(null, label.getName());
assertEquals(null, label.getValue());
}
}