2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.model
.reference
;
12 import static org
.junit
.Assert
.*;
14 import java
.util
.List
;
16 import org
.apache
.log4j
.Logger
;
17 import org
.junit
.After
;
18 import org
.junit
.AfterClass
;
19 import org
.junit
.Before
;
20 import org
.junit
.BeforeClass
;
21 import org
.junit
.Test
;
28 public class PublicationBaseTest
{
29 @SuppressWarnings("unused")
30 private static Logger logger
= Logger
.getLogger(PublicationBaseTest
.class);
32 private CdDvd publicationBase
;
33 private String publisher1
;
34 private String publisher2
;
35 private String place1
;
36 private String place2
;
39 * @throws java.lang.Exception
42 public static void setUpBeforeClass() throws Exception
{
46 * @throws java.lang.Exception
49 public static void tearDownAfterClass() throws Exception
{
53 * @throws java.lang.Exception
56 public void setUp() throws Exception
{
57 publisher1
= "publisher1";
58 publisher2
= "publisher2";
61 publicationBase
= new CdDvd();
65 * @throws java.lang.Exception
68 public void tearDown() throws Exception
{
74 * Test method for {@link eu.etaxonomy.cdm.model.reference.PublicationBase#addPublisher(java.lang.String, java.lang.String)}.
77 public void testAddPublisherStringString() {
78 assertEquals("Publishers list must be empty", 0, publicationBase
.getPublishers().size());
79 publicationBase
.addPublisher(publisher1
, place1
);
80 assertEquals("Publishers list must contains exactly 1 entry", 1, publicationBase
.getPublishers().size());
81 publicationBase
.addPublisher(publisher2
, place2
);
82 assertEquals("Publishers list must contains exactly 2 entry", 2, publicationBase
.getPublishers().size());
83 //List<Publisher> publishers = publicationBase.getPublishers();
84 assertEquals("First publisher must be publisher1", publisher1
, publicationBase
.getPublisher(0).getPublisherName());
85 assertEquals("Second publisher must be publisher2", publisher2
, publicationBase
.getPublisher(1).getPublisherName());
86 assertEquals("First publication place must be place1", place1
, publicationBase
.getPublisher(0).getPlace());
87 assertEquals("Second publication place must be place2", place2
, publicationBase
.getPublisher(1).getPlace());
91 * Test method for {@link eu.etaxonomy.cdm.model.reference.PublicationBase#addPublisher(java.lang.String, java.lang.String, int)}.
93 @Test(expected
=IndexOutOfBoundsException
.class)
94 public void testAddPublisherStringStringInt() {
95 publicationBase
.addPublisher(publisher1
, place1
);
96 publicationBase
.addPublisher(publisher2
, place2
);
97 assertEquals("Publishers list must contains exactly 2 entry", 2, publicationBase
.getPublishers().size());
98 String indexPublisher
= "indexPublisher";
99 String indexPlace
= "indexPlace";
100 publicationBase
.addPublisher(indexPublisher
, indexPlace
, 1);
101 assertEquals("Publisher at position 1 (starting at 0) should be 'indexPublisher'", indexPublisher
, publicationBase
.getPublishers().get(1).getPublisherName());
102 publicationBase
.addPublisher(indexPublisher
, indexPlace
, 5);
107 * Test method for {@link eu.etaxonomy.cdm.model.reference.PublicationBase#getPublisher(java.lang.int}.
109 @Test(expected
=IndexOutOfBoundsException
.class)
110 public void testGetPublisherInt() {
111 publicationBase
.addPublisher(publisher1
, place1
);
112 publicationBase
.addPublisher(publisher2
, place2
);
113 assertEquals("Publishers list must contains exactly 2 entry", 2, publicationBase
.getPublishers().size());
114 assertEquals("First publisher must be publisher1", publisher1
, publicationBase
.getPublisher(0).getPublisherName());
115 publicationBase
.getPublisher(2);
116 publicationBase
.getPublisher(-1);
120 * Test method for {@link eu.etaxonomy.cdm.model.reference.PublicationBase#removePublisher(eu.etaxonomy.cdm.model.reference.Publisher)}.
123 public void testRemovePublisher() {
124 publicationBase
.addPublisher(publisher1
, place1
);
125 publicationBase
.addPublisher(publisher2
, place2
);
126 assertEquals("Publishers list must contains exactly 2 entry", 2, publicationBase
.getPublishers().size());
127 publicationBase
.removePublisher(publicationBase
.getPublishers().get(0));
128 assertEquals("Publishers list must contains exactly 1 entry", 1, publicationBase
.getPublishers().size());
129 List
<Publisher
> publishers
= publicationBase
.getPublishers();
130 assertEquals("Only publisher must be publisher2", publisher2
, publishers
.get(0).getPublisherName());
131 assertEquals("only publication place must be place2", place2
, publishers
.get(0).getPlace());
135 * Test method for {@link eu.etaxonomy.cdm.model.reference.PublicationBase#clone()}.
138 public void testClone() {
139 publicationBase
.addPublisher(publisher1
, place1
);
140 publicationBase
.addPublisher(publisher2
, place2
);
141 assertEquals("Publishers list must contains exactly 2 entry", 2, publicationBase
.getPublishers().size());
142 CdDvd clone
= (CdDvd
)publicationBase
.clone();
143 assertEquals("Publisher place must be equal in original publication and cloned publication", place1
, clone
.getPublisher(0).getPlace());
144 assertNotSame(place1
, publicationBase
.getPublisher(0), clone
.getPublisher(0));