1 package jp.ac.aiit.xdf.model;
3 import java.util.Arrays;
6 import jp.ac.aiit.xdf.core.model.DefaultObjectModel;
8 import org.testng.Assert;
9 import org.testng.annotations.BeforeMethod;
10 import org.testng.annotations.DataProvider;
11 import org.testng.annotations.Test;
14 * DefaultObjectModelがインターフェース仕様を満たしていることを確認するためのテスト
18 public class DefaultObjectModelTest {
19 private static final String ID_FOR_TEST = "id-for-test";
21 private DefaultObjectModel model;
24 public void beforeTest() {
25 this.model = new DefaultObjectModel("sample");
29 public void testSetAndGetID() {
30 model.id(ID_FOR_TEST);
31 Assert.assertEquals(model.id(), ID_FOR_TEST);
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 }
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);
51 Assert.assertEquals(model.hasClass(check), result);
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);
59 model.removeClass(remove);
61 Assert.assertFalse(model.hasClass(remove));
65 public void testSetAndGetAttr() {
66 model.attr("test", "testvalue");
68 Assert.assertEquals(model.attr("test"), "testvalue");
72 public void testSetDuplicateAttr() {
73 model.attr("test", "testval1");
74 model.attr("test", "testval2");
76 Assert.assertEquals(model.attr("test"), "testval2");
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" } }
86 @Test(dataProvider="attrs")
87 public void testRemoveAttr(String[][] attrs, String[] deletes) {
88 for(String[] attr : attrs) {
89 model.attr(attr[0], attr[1]);
91 for(String del : deletes) { model.removeAttr(del); }
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]) );