Project

General

Profile

Download (3.88 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
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.
8
*/
9
package eu.etaxonomy.cdm.model.metadata;
10

    
11
import org.junit.Assert;
12
import org.junit.Before;
13
import org.junit.Test;
14

    
15
/**
16
 * @author a.mueller
17
 * @created 2013-07-03
18
 *
19
 */
20
public class CdmPreferenceTest {
21

    
22
	private String subject;
23
	private String subject2;
24
	private String predicate;
25
	private String value;
26

    
27
	/**
28
	 * @throws java.lang.Exception
29
	 */
30
	@Before
31
	public void setUp() throws Exception {
32
		subject = "/";
33
		predicate = "eu.etaxonomy.cdm.model.name.NomenclaturalCode";
34
		value = "ICZN";
35

    
36
	}
37

    
38
	/**
39
	 * Test method for {@link eu.etaxonomy.cdm.model.metadata.CdmPreference#CdmPreferences(java.lang.String, java.lang.String, java.lang.String)}.
40
	 */
41
	@Test
42
	public void testCdmPreferences() {
43
		CdmPreference prefs = new CdmPreference(subject, predicate, value);
44
		Assert.assertEquals(subject, prefs.getSubject());
45
		Assert.assertEquals(predicate, prefs.getPredicate());
46
		Assert.assertEquals(value, prefs.getValue());
47

    
48

    
49
	}
50

    
51

    
52
	@Test
53
	public void testConstraints() {
54
		String veryLongText100 =
55
"This is a very long text it is even longer then any other long text which is already long. size =100";
56
		String veryLongText200 = veryLongText100 + veryLongText100;
57
		String veryLongText400 = veryLongText200 + veryLongText200;
58
		String veryLongText1200 = veryLongText400 + veryLongText400 + veryLongText400;
59

    
60
		CdmPreference prefs = null;
61
		try {
62
			prefs = new CdmPreference(null, predicate, value);
63
			Assert.fail("Subject must not be null");
64
		} catch (Exception e) {
65
			//ok
66
		}
67
		try {
68
			prefs = new CdmPreference(veryLongText400, predicate, value);
69
			Assert.fail("Subject must not be longer then 255");
70
		} catch (Exception e) {
71
			//ok
72
		}
73

    
74
		try {
75
			prefs = new CdmPreference(subject, null, value);
76
			Assert.fail("Predicate must not be null");
77
		} catch (Exception e) {
78
			//ok
79
		}
80
		try {
81
			prefs = new CdmPreference(subject, veryLongText400, value);
82
			Assert.fail("Predicate must not be longer then 255");
83
		} catch (Exception e) {
84
			//ok
85
		}
86

    
87
		try {
88
			prefs = new CdmPreference(subject, predicate, null);
89
	         Assert.assertEquals(subject, prefs.getSubject());
90
	         Assert.assertEquals(predicate, prefs.getPredicate());
91
	         Assert.assertNull(value, null);
92
		} catch (Exception e) {
93
			Assert.fail("Currently null values are allowed in preferences");
94

    
95
		}
96
		try {
97
			prefs = new CdmPreference(subject, predicate, veryLongText1200);
98
			Assert.fail("Value must not be longer then 1023");
99
		} catch (Exception e) {
100
			//ok
101
		}
102
	}
103

    
104
    @Test
105
    public void testSubjectSyntax() {
106
        CdmPreference prefs = null;
107
        String subject2 = null;
108
        try {
109
            subject2 = "/TaxonNode[#t1#18681#6392#5358#9#2#]";
110
            prefs = new CdmPreference(subject2, predicate, value);
111
            Assert.assertEquals(subject2, prefs.getSubject());
112
            Assert.assertEquals(predicate, prefs.getPredicate());
113
            Assert.assertEquals(value, prefs.getValue());
114
        } catch (Exception e) {
115
            Assert.fail("Syntax for " + subject2 + " should be ok");
116
        }
117

    
118
        try {
119
            subject2 = "/TaxonNode[#t1#18681#6392#5358#9#2#]x";
120
            prefs = new CdmPreference(subject2, predicate, value);
121
            Assert.fail("Syntax for " + subject2 + " should fail");
122
        } catch (Exception e) {
123
            //ok
124
        }
125

    
126
        try {
127
            subject2 = "/Taxon3Node[#t1#18681#6392#5358#9#2#]";
128
            prefs = new CdmPreference(subject2, predicate, value);
129
            Assert.fail("Syntax for " + subject2 + " should fail");
130
        } catch (Exception e) {
131
            //ok
132
        }
133

    
134
    }
135

    
136
}
(2-2/3)