package org.xmind.core.tests;
import static org.junit.Assert.*;
import org.junit.*;
import org.xmind.core.*;
import org.xmind.core.internal.dom.*;
import org.xmind.core.internal.tests.*;
import org.xmind.core.io.*;
public class WorkbookExtensionTestCase extends WorkbookTestCaseBase {
@Test
public void testExtensions() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
assertNotNull(extManager);
assertEquals(0, extManager.getExtensions().size());
IWorkbookExtension ext = extManager.createExtension("org.xmind.test.foobar");
assertNotNull(ext);
assertEquals("org.xmind.test.foobar", ext.getProviderName());
assertEquals(1, extManager.getExtensions().size());
extManager.createExtension("org.xmind.test.foobar");
assertEquals(1, extManager.getExtensions().size());
IWorkbookExtension ext2 = extManager.getExtension("org.xmind.test.foobar");
assertSame(ext, ext2);
}
@Test
public void testResourceRef() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension ext = extManager.createExtension("org.xmind.test.foobar");
assertEquals(0, ext.getResourceRefs().size());
IResourceRef ref = workbook.createResourceRef(IResourceRef.FILE_ENTRY, "attachemnt/demo"); //$NON-NLS-1$
ext.addResourceRef(ref);
assertEquals(1, ext.getResourceRefs().size());
assertEquals(IResourceRef.FILE_ENTRY, ref.getType());
assertEquals("attachemnt/demo", ref.getResourceId()); //$NON-NLS-1$
ext.removeResourceRef(ref);
assertEquals(0, ext.getResourceRefs().size());
}
@Test
public void testName() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
assertEquals(DOMConstants.TAG_CONTENT, content.getName());
IWorkbookExtensionElement ele = content.createChild("Name"); //$NON-NLS-1$
assertEquals("Name", ele.getName()); //$NON-NLS-1$
}
@Test
public void testParent() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
assertNull(content.getParent());
IWorkbookExtensionElement ele = content.createChild("Name"); //$NON-NLS-1$
assertSame(content, ele.getParent());
}
@Test
public void testTextContent() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
assertNull(content.getTextContent());
content.setTextContent("text"); //$NON-NLS-1$
assertEquals("text", content.getTextContent()); //$NON-NLS-1$
content.setTextContent(null);
assertNull(content.getTextContent());
}
@Test
public void testGetChildren() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
assertEquals(0, content.getChildren().size());
assertEquals(0, content.getChildren("Name1").size()); //$NON-NLS-1$
content.createChild("Name1"); //$NON-NLS-1$
content.createChild("Name2"); //$NON-NLS-1$
assertEquals(2, content.getChildren().size());
assertEquals(1, content.getChildren("Name1").size()); //$NON-NLS-1$
}
@Test
public void testCreateChild() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
IWorkbookExtensionElement ele = content.createChild("Name"); //$NON-NLS-1$
assertNotNull(ele);
assertEquals("Name", ele.getName()); //$NON-NLS-1$
}
@Test
public void testGetCreatedChild() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
assertNotNull(content.getCreatedChild("Name1")); //$NON-NLS-1$
IWorkbookExtensionElement ele = content.createChild("Name2"); //$NON-NLS-1$
assertSame(ele, content.getCreatedChild("Name2")); //$NON-NLS-1$
}
@Test
public void testGetFirstChild() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
assertNull(content.getFirstChild("Name")); //$NON-NLS-1$
IWorkbookExtensionElement ele1 = content.createChild("Name"); //$NON-NLS-1$
assertSame(ele1, content.getFirstChild("Name")); //$NON-NLS-1$
IWorkbookExtensionElement ele2 = content.createChild("Name"); //$NON-NLS-1$
assertSame(ele1, content.getFirstChild("Name")); //$NON-NLS-1$
content.addChild(ele2, 0);
assertSame(ele2, content.getFirstChild("Name")); //$NON-NLS-1$
}
@Test
public void testDelete() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
IWorkbookExtensionElement ele1 = content.createChild("Name"); //$NON-NLS-1$
assertEquals(1, content.getChildren().size());
content.deleteChild(ele1);
assertEquals(0, content.getChildren().size());
content.createChild("Name"); //$NON-NLS-1$
assertEquals(1, content.getChildren("Name").size()); //$NON-NLS-1$
content.deleteChildren("Name"); //$NON-NLS-1$
assertEquals(0, content.getChildren("Name").size()); //$NON-NLS-1$
content.createChild("Name1"); //$NON-NLS-1$
content.createChild("Name2"); //$NON-NLS-1$
assertEquals(2, content.getChildren().size());
content.deleteChildren();
assertEquals(0, content.getChildren().size());
}
@Test
public void testAttributes() {
IWorkbook workbook = createWorkbook(new ByteArrayStorage());
IWorkbookExtensionManager extManager = workbook.getAdapter(IWorkbookExtensionManager.class);
IWorkbookExtension extension = extManager.createExtension("org.xmind.test.foobar");
IWorkbookExtensionElement content = extension.getContent();
assertEquals(0, content.getAttributeKeys().size());
content.setAttribute("Name1", "Value1"); //$NON-NLS-1$//$NON-NLS-2$
content.setAttribute("Name2", "Value2"); //$NON-NLS-1$//$NON-NLS-2$
assertEquals(2, content.getAttributeKeys().size());
assertEquals("Value1", content.getAttribute("Name1")); //$NON-NLS-1$//$NON-NLS-2$
content.setAttribute("Name1", null); //$NON-NLS-1$
assertEquals(1, content.getAttributeKeys().size());
}
}