/*
* This file is part of ADDIS (Aggregate Data Drug Information System).
* ADDIS is distributed from http://drugis.org/.
* Copyright © 2009 Gert van Valkenhoef, Tommi Tervonen.
* Copyright © 2010 Gert van Valkenhoef, Tommi Tervonen, Tijs Zwinkels,
* Maarten Jacobs, Hanno Koeslag, Florin Schimbinschi, Ahmad Kamal, Daniel
* Reid.
* Copyright © 2011 Gert van Valkenhoef, Ahmad Kamal, Daniel Reid, Florin
* Schimbinschi.
* Copyright © 2012 Gert van Valkenhoef, Daniel Reid, Joël Kuiper, Wouter
* Reckman.
* Copyright © 2013 Gert van Valkenhoef, Joël Kuiper.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.drugis.addis.entities;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertTrue;
import java.util.Collections;
import org.drugis.common.JUnitUtil;
import org.junit.Before;
import org.junit.Test;
public class ArmTest {
private Arm d_arm;
private String d_name;
@Before
public void setUp() {
d_name = "Group 1";
d_arm = new Arm(d_name, 0);
}
@Test
public void testSetSize() {
JUnitUtil.testSetter(d_arm, Arm.PROPERTY_SIZE, 0, 1);
}
@Test
public void testRename() {
assertNotSame(d_arm, d_arm.rename(d_name));
assertEquals(d_arm, d_arm.rename(d_name));
assertEquals("New name", d_arm.rename("New name").getName());
}
@Test
public void testEquals() {
// equality is defined on the NAME field.
assertEquals(d_arm, new Arm(d_name, 12));
assertEquals(d_arm.hashCode(), new Arm(d_name, 12).hashCode());
JUnitUtil.assertNotEquals(d_arm, new Arm("Group 2", 0));
// deep equality is defined by equality of the object graph
assertTrue(d_arm.deepEquals(d_arm));
assertFalse(d_arm.deepEquals(new Arm(d_name, 12)));
assertTrue(d_arm.deepEquals(new Arm(d_name, 0)));
d_arm.getNotes().add(new Note());
assertFalse(d_arm.deepEquals(new Arm(d_name, 0)));
}
@Test
public void testDependencies() {
assertEquals(Collections.emptySet(), d_arm.getDependencies());
}
@Test
public void testToString() {
assertEquals(d_arm.getName(), d_arm.toString());
}
@Test
public void testNotes() {
assertEquals(Collections.emptyList(), d_arm.getNotes());
Note n = new Note(Source.MANUAL, "Zis is a note");
d_arm.getNotes().add(n);
assertEquals(Collections.singletonList(n), d_arm.getNotes());
}
@Test
public void testCloneReturnsDifferentEqualEntity() {
Arm clone_arm = d_arm.clone();
assertTrue(clone_arm.deepEquals(d_arm));
assertNotSame(clone_arm, d_arm);
}
}