OSDN Git Service

srcディレクトリとdocディレクトリを作成
[xdf/git-repos.git] / src / xdf / src / test / java / jp / ac / aiit / xdf / model / DefaultObjectModelTest.java
1 package jp.ac.aiit.xdf.model;
2
3 import java.util.Arrays;
4 import java.util.List;
5
6 import jp.ac.aiit.xdf.core.model.DefaultObjectModel;
7
8 import org.testng.Assert;
9 import org.testng.annotations.BeforeMethod;
10 import org.testng.annotations.DataProvider;
11 import org.testng.annotations.Test;
12
13 /**
14  * DefaultObjectModelがインターフェース仕様を満たしていることを確認するためのテスト
15  * 
16  * @author stakagi
17  */
18 public class DefaultObjectModelTest {
19         private static final String ID_FOR_TEST = "id-for-test";
20         
21         private DefaultObjectModel model;
22         
23         @BeforeMethod
24         public void beforeTest() {
25                 this.model = new DefaultObjectModel("sample");
26         }
27         
28         @Test
29         public void testSetAndGetID() {
30                 model.id(ID_FOR_TEST);
31                 Assert.assertEquals(model.id(), ID_FOR_TEST);
32         }
33
34         @DataProvider(name="classes")
35         public Object[][] classes() {
36                 return new Object[][]{
37                                 { new String[]{ "aaa" }, "aaa", true },
38                                 { new String[]{ "bbb" }, "aaa", false },
39                                 { new String[]{ "aaa", "bbb" }, "aaaa", false },
40                                 { new String[]{ "aaa", "bbb", "ccc" }, "bbb", true },
41                                 { new String[]{ "aaa", "bbb", "ccc" }, "ddd", false }
42                 };
43         }
44         
45         @Test(groups="setclass", dataProvider="classes")
46         public void testAddAndHasClass(String[] classes, String check, boolean result) {
47                 for(String clazz : classes) {
48                         model.addClass(clazz);
49                 }
50                 
51                 Assert.assertEquals(model.hasClass(check), result);
52         }
53         
54         @Test(dataProvider="classes", dependsOnGroups="setclass")
55         public void testRemoveClass(String[] classes, String remove, boolean x) {
56                 for(String clazz : classes) {
57                         model.addClass(clazz);
58                 }
59                 model.removeClass(remove);
60                 
61                 Assert.assertFalse(model.hasClass(remove));
62         }
63         
64         @Test
65         public void testSetAndGetAttr() {
66                 model.attr("test", "testvalue");
67                 
68                 Assert.assertEquals(model.attr("test"), "testvalue");
69         }
70         
71         @Test
72         public void testSetDuplicateAttr() {
73                 model.attr("test", "testval1");
74                 model.attr("test", "testval2");
75                 
76                 Assert.assertEquals(model.attr("test"), "testval2");
77         }
78         
79         @DataProvider(name="attrs")
80         public Object[][] attrs() {
81                 return new Object[][] {
82                                 { new String[][] { { "attr1", "1" }, { "attr2", "2" }, { "attr3", "3" } }, new String[] { "attr1", "attr3" } }
83                 };
84         }
85         
86         @Test(dataProvider="attrs")
87         public void testRemoveAttr(String[][] attrs, String[] deletes) {
88                 for(String[] attr : attrs) {
89                         model.attr(attr[0], attr[1]);
90                 }
91                 for(String del : deletes) { model.removeAttr(del); }
92                 
93                 List<String> dels = Arrays.asList(deletes);
94                 for(String[] attr : attrs) {
95                         Assert.assertEquals(model.attr(attr[0]), ( dels.contains(attr[0]) ? null : attr[1]) );
96                 }
97         }
98         
99 }