Author: elvisisking
Date: 2010-01-21 17:20:57 -0500 (Thu, 21 Jan 2010)
New Revision: 19871
Added:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.classpath
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.project
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.jdt.core.prefs
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.pde.core.prefs
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/META-INF/
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/META-INF/MANIFEST.MF
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/build.properties
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/hamcrest-core-1.1.jar
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/junit-4.4.jar
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/MockRestClient.java
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/PersistedServerTest.java
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerManagerTest.java
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerRegistryEventTest.java
Log:
Initial versions of source.
Added: trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.classpath
===================================================================
--- trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.classpath
(rev 0)
+++ trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.classpath 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry exported="true" kind="lib"
path="junit-4.4.jar"/>
+ <classpathentry exported="true" kind="lib"
path="hamcrest-core-1.1.jar"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Property changes on: trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.classpath
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.project
===================================================================
--- trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.project
(rev 0)
+++ trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.project 2010-01-21 22:20:57
UTC (rev 19871)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.modeshape.rest.test</name>
+ <comment></comment>
+ <projects>
+ <project>org.jboss.tools.modeshape.rest</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Property changes on: trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.project
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.jdt.core.prefs
===================================================================
---
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.jdt.core.prefs
(rev 0)
+++
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.jdt.core.prefs 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,7 @@
+#Wed Dec 23 11:15:16 CST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.pde.core.prefs
===================================================================
---
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.pde.core.prefs
(rev 0)
+++
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.pde.core.prefs 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,4 @@
+#Wed Dec 23 11:15:16 CST 2009
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/.settings/org.eclipse.pde.core.prefs
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/META-INF/MANIFEST.MF
(rev 0)
+++
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/META-INF/MANIFEST.MF 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test Plug-in
+Bundle-SymbolicName: org.jboss.tools.modeshape.rest.test
+Bundle-Version: 1.0.0
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.jboss.tools.modeshape.rest;bundle-version="1.0.0"
+Bundle-ClassPath: hamcrest-core-1.1.jar,
+ .,
+ junit-4.4.jar
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/META-INF/MANIFEST.MF
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/build.properties
===================================================================
--- trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/build.properties
(rev 0)
+++ trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/build.properties 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ hamcrest-core-1.1.jar,\
+ junit-4.4.jar
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/build.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/hamcrest-core-1.1.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/hamcrest-core-1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/junit-4.4.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/junit-4.4.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/MockRestClient.java
===================================================================
---
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/MockRestClient.java
(rev 0)
+++
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/MockRestClient.java 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,88 @@
+/*
+ * ModeShape (
http://www.modeshape.org)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.
+ *
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at
http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ */
+package org.jboss.tools.modeshape.rest;
+
+import java.io.File;
+import java.net.URL;
+import java.util.Collection;
+import org.modeshape.web.jcr.rest.client.IRestClient;
+import org.modeshape.web.jcr.rest.client.Status;
+import org.modeshape.web.jcr.rest.client.domain.Repository;
+import org.modeshape.web.jcr.rest.client.domain.Server;
+import org.modeshape.web.jcr.rest.client.domain.Workspace;
+
+/**
+ * The <code>MockRestExecutor</code> class is a test
<code>IRestClient</code> implementation that does nothing.
+ */
+public final class MockRestClient implements IRestClient {
+
+ //
===========================================================================================================================
+ // Methods
+ //
===========================================================================================================================
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see
org.modeshape.web.jcr.rest.client.IRestClient#getRepositories(org.modeshape.web.jcr.rest.client.domain.Server)
+ */
+ public Collection<Repository> getRepositories( Server server ) throws Exception
{
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.modeshape.web.jcr.rest.client.IRestClient#getUrl(java.io.File,
java.lang.String,
+ * org.modeshape.web.jcr.rest.client.domain.Workspace)
+ */
+ public URL getUrl( File file,
+ String path,
+ Workspace workspace ) throws Exception {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see
org.modeshape.web.jcr.rest.client.IRestClient#getWorkspaces(org.modeshape.web.jcr.rest.client.domain.Repository)
+ */
+ public Collection<Workspace> getWorkspaces( Repository repository ) throws
Exception {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see
org.modeshape.web.jcr.rest.client.IRestClient#publish(org.modeshape.web.jcr.rest.client.domain.Workspace,
+ * java.lang.String, java.io.File)
+ */
+ public Status publish( Workspace workspace,
+ String path,
+ File file ) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see
org.modeshape.web.jcr.rest.client.IRestClient#unpublish(org.modeshape.web.jcr.rest.client.domain.Workspace,
+ * java.lang.String, java.io.File)
+ */
+ public Status unpublish( Workspace workspace,
+ String path,
+ File file ) {
+ return null;
+ }
+
+}
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/MockRestClient.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/PersistedServerTest.java
===================================================================
---
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/PersistedServerTest.java
(rev 0)
+++
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/PersistedServerTest.java 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,48 @@
+/*
+ * ModeShape (
http://www.modeshape.org)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.
+ *
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at
http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ */
+package org.jboss.tools.modeshape.rest;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+import org.jboss.tools.modeshape.rest.PersistedServer;
+import org.junit.Test;
+
+public final class PersistedServerTest {
+
+ private static final PersistedServer PERSISTED = new PersistedServer("url",
"user", "pswd", true);
+
+ private static final PersistedServer NOT_PERSISTED = new
PersistedServer(PERSISTED.getUrl(), PERSISTED.getUser(),
+
PERSISTED.getPassword(), false);
+
+ @Test
+ public void shouldNotBeEqualIfDifferentPasswordSettings() {
+ assertThat(PERSISTED.equals(NOT_PERSISTED), is(false));
+ }
+
+ @Test
+ public void shouldHaveSameHashCodeIfDifferentPasswordSettings() {
+ assertThat(PERSISTED.hashCode(), is(NOT_PERSISTED.hashCode()));
+ }
+
+ @Test
+ public void shouldHavePasswordBeingPersisted() {
+ assertThat(PERSISTED.isPasswordBeingPersisted(), is(true));
+ }
+
+ @Test
+ public void shouldNotHavePasswordBeingPersisted() {
+ assertThat(NOT_PERSISTED.isPasswordBeingPersisted(), is(false));
+ }
+
+}
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/PersistedServerTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerManagerTest.java
===================================================================
---
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerManagerTest.java
(rev 0)
+++
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerManagerTest.java 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,269 @@
+/*
+ * ModeShape (
http://www.modeshape.org)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.
+ *
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at
http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ */
+package org.jboss.tools.modeshape.rest;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+import org.jboss.tools.modeshape.rest.IServerRegistryListener;
+import org.jboss.tools.modeshape.rest.PersistedServer;
+import org.jboss.tools.modeshape.rest.ServerManager;
+import org.jboss.tools.modeshape.rest.ServerRegistryEvent;
+import org.junit.Before;
+import org.junit.Test;
+import org.modeshape.web.jcr.rest.client.Status;
+import org.modeshape.web.jcr.rest.client.domain.Repository;
+import org.modeshape.web.jcr.rest.client.domain.Server;
+
+/**
+ * The <code>ServerManagerTest</code> class is a test class for the {@link
ServerManager server manager} object.
+ */
+public final class ServerManagerTest {
+
+ //
===========================================================================================================================
+ // Constants
+ //
===========================================================================================================================
+
+ private static final String URL1 = "file:/tmp/temp.txt"; //$NON-NLS-1$
+ private static final String URL2 = "http:www.redhat.com"; //$NON-NLS-1$
+
+ private static final String USER1 = "user1"; //$NON-NLS-1$
+ private static final String USER2 = "user2"; //$NON-NLS-1$
+
+ private static final String PSWD1 = "pwsd1"; //$NON-NLS-1$
+ private static final String PSWD2 = "pwsd2"; //$NON-NLS-1$
+
+ private static PersistedServer SERVER1 = new PersistedServer(URL1, USER1, PSWD1,
false);
+ private static PersistedServer SERVER1_UPDATE = new PersistedServer(SERVER1.getUrl(),
SERVER1.getUser(),
+
SERVER1.getPassword(), SERVER1.isPasswordBeingPersisted());
+ private static PersistedServer SERVER2 = new PersistedServer(URL2, USER2, PSWD2,
!SERVER1.isPasswordBeingPersisted());
+
+ //
===========================================================================================================================
+ // Fields
+ //
===========================================================================================================================
+
+ private ServerManager serverManager;
+
+ //
===========================================================================================================================
+ // Methods
+ //
===========================================================================================================================
+
+ @Before
+ public void beforeEach() {
+ this.serverManager = new ServerManager(null, new MockRestClient());
+ }
+
+ //
===========================================================================================================================
+ // Tests
+ //
===========================================================================================================================
+
+ @Test
+ public void shouldBeRegisteredIfAdded() {
+ this.serverManager.addServer(SERVER1);
+ assertThat(this.serverManager.isRegistered(SERVER1), is(true));
+ assertThat(this.serverManager.getServers().size(), is(1));
+ }
+
+ @Test
+ public void shouldBeRegisteredIfServerWithSameKeyHasBeenAdded() {
+ this.serverManager.addServer(SERVER1);
+ assertThat(this.serverManager.isRegistered(new Server(SERVER1.getUrl(),
SERVER1.getUser(), PSWD2)), is(true));
+ assertThat(this.serverManager.getServers().size(), is(1));
+ }
+
+ @Test
+ public void shouldDecreaseRegistrySizeWhenServerRemoved() {
+ this.serverManager.addServer(SERVER1);
+ this.serverManager.addServer(SERVER2);
+
+ this.serverManager.removeServer(SERVER1);
+ assertThat(this.serverManager.getServers().size(), is(1));
+
+ this.serverManager.removeServer(SERVER2);
+ assertThat(this.serverManager.getServers().isEmpty(), is(true));
+ }
+
+ @Test
+ public void shouldHaveOkStatusWhenAddingServerSuccessfully() {
+ assertThat(this.serverManager.addServer(SERVER1).isOk(), is(true));
+ assertThat(this.serverManager.getServers().size(), is(1));
+ }
+
+ @Test
+ public void shouldHaveOkStatusWhenRemovingServerSuccessfully() {
+ this.serverManager.addServer(SERVER1);
+ assertThat(this.serverManager.removeServer(SERVER1).isOk(), is(true));
+ assertThat(this.serverManager.getServers().isEmpty(), is(true));
+ }
+
+ @Test
+ public void shouldHaveOkStatusWhenUpdateServerSuccessfully() {
+ this.serverManager.addServer(SERVER1);
+ assertThat(this.serverManager.updateServer(SERVER1, SERVER1_UPDATE).isOk(),
is(true));
+ assertThat(this.serverManager.getServers().size(), is(1));
+ }
+
+ @Test
+ public void shouldIncreaseRegistrySizeWhenServerAdded() {
+ this.serverManager.addServer(SERVER1);
+ assertThat(this.serverManager.getServers().size(), is(1));
+
+ this.serverManager.addServer(SERVER2);
+ assertThat(this.serverManager.getServers().size(), is(2));
+ }
+
+ @Test
+ public void shouldNotAddServerIfAlreadyAdded() {
+ this.serverManager.addServer(SERVER1);
+ assertThat(this.serverManager.addServer(SERVER1).isOk(), is(false));
+ assertThat(this.serverManager.getServers().size(), is(1));
+ }
+
+ @Test
+ public void shouldNotAddServerIfKeysMatch() {
+ this.serverManager.addServer(SERVER1);
+ Status status = this.serverManager.addServer(new
PersistedServer(SERVER1.getUrl(), SERVER1.getUser(), PSWD2, true));
+ assertThat(status.isOk(), is(false));
+ assertThat(this.serverManager.getServers().size(), is(1));
+ }
+
+ @Test
+ public void shouldNotBeRegisteredIfNotAdded() {
+ this.serverManager.addServer(SERVER1);
+ assertThat(this.serverManager.isRegistered(SERVER2), is(false));
+ assertThat(this.serverManager.getServers().size(), is(1));
+ }
+
+ @Test
+ public void shouldNotBeRegisteredIfRemoved() {
+ this.serverManager.addServer(SERVER1);
+ this.serverManager.removeServer(SERVER1);
+ assertThat(this.serverManager.isRegistered(SERVER1), is(false));
+ assertThat(this.serverManager.getServers().isEmpty(), is(true));
+ }
+
+ @Test
+ public void shouldNotReceiveNotificationIfListenerUnregistered() {
+ RegistryListener listener = new RegistryListener();
+
+ this.serverManager.addRegistryListener(listener);
+ this.serverManager.removeRegistryListener(listener);
+ this.serverManager.addServer(SERVER1);
+ assertThat(listener.wasNotified(), is(false));
+ }
+
+ @Test
+ public void shouldNotRemoveServerIfNotAdded() {
+ assertThat(this.serverManager.removeServer(SERVER1).isOk(), is(false));
+ assertThat(this.serverManager.getServers().isEmpty(), is(true));
+ }
+
+ @Test( expected = RuntimeException.class )
+ public void shouldNotObtainRepositoriesForUnregisteredServer() throws Exception {
+ this.serverManager.getRepositories(SERVER1);
+ }
+
+ @Test( expected = RuntimeException.class )
+ public void shouldNotObtainWorkspacesForUnregisteredServer() throws Exception {
+ Repository repository = new Repository("repo", SERVER1);//$NON-NLS-1$
+ this.serverManager.getWorkspaces(repository);
+ }
+
+ @Test
+ public void shouldReceiveOneEventIfRegisteredMoreThanOnce() {
+ RegistryListener listener = new RegistryListener();
+ this.serverManager.addRegistryListener(listener);
+ this.serverManager.addRegistryListener(listener);
+
+ this.serverManager.addServer(SERVER1);
+ assertThat(listener.wasNotified(), is(true));
+ }
+
+ @Test
+ public void shouldReceiveNotificationIfRegisteredListener() {
+ RegistryListener listener = new RegistryListener();
+ assertThat(this.serverManager.addRegistryListener(listener), is(true));
+
+ this.serverManager.addServer(SERVER1);
+ assertThat(listener.wasNotified(), is(true));
+ }
+
+ @Test
+ public void shouldReceiveNewServerEvent() {
+ RegistryListener listener = new RegistryListener();
+ this.serverManager.addRegistryListener(listener);
+
+ this.serverManager.addServer(SERVER1);
+ assertThat(listener.getEvent().isNew(), is(true));
+ assertThat(listener.getEvent().isRemove(), is(false));
+ assertThat(listener.getEvent().isUpdate(), is(false));
+ }
+
+ @Test
+ public void shouldReceiveRemoveServerEvent() {
+ this.serverManager.addServer(SERVER1);
+
+ RegistryListener listener = new RegistryListener();
+ this.serverManager.addRegistryListener(listener);
+
+ this.serverManager.removeServer(SERVER1);
+ assertThat(listener.getEvent().isRemove(), is(true));
+ assertThat(listener.getEvent().isNew(), is(false));
+ assertThat(listener.getEvent().isUpdate(), is(false));
+ }
+
+ @Test
+ public void shouldReceiveUpdateServerEvent() {
+ this.serverManager.addServer(SERVER1);
+
+ RegistryListener listener = new RegistryListener();
+ this.serverManager.addRegistryListener(listener);
+
+ this.serverManager.updateServer(SERVER1, new PersistedServer(SERVER1.getUrl(),
SERVER1.getUser(), PSWD2,
+
!SERVER1.isPasswordBeingPersisted()));
+ assertThat(listener.getEvent().isUpdate(), is(true));
+ assertThat(listener.getEvent().isNew(), is(false));
+ assertThat(listener.getEvent().isRemove(), is(false));
+ }
+
+ @Test
+ public void shouldRemoveServerIfNotAddedButKeyMatches() {
+ this.serverManager.addServer(SERVER1_UPDATE);
+ assertThat(this.serverManager.removeServer(SERVER1).isOk(), is(true));
+ assertThat(this.serverManager.getServers().isEmpty(), is(true));
+ }
+
+ //
===========================================================================================================================
+ // RegistryListener Inner Class
+ //
===========================================================================================================================
+
+ class RegistryListener implements IServerRegistryListener {
+ boolean[] notified = new boolean[] {false};
+ ServerRegistryEvent event = null;
+
+ public Exception[] serverRegistryChanged( ServerRegistryEvent event ) {
+ notified[0] = !notified[0];
+ this.event = event;
+ return null;
+ }
+
+ public ServerRegistryEvent getEvent() {
+ return this.event;
+ }
+
+ public boolean wasNotified() {
+ return notified[0];
+ }
+ }
+
+}
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerManagerTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerRegistryEventTest.java
===================================================================
---
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerRegistryEventTest.java
(rev 0)
+++
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerRegistryEventTest.java 2010-01-21
22:20:57 UTC (rev 19871)
@@ -0,0 +1,131 @@
+/*
+ * ModeShape (
http://www.modeshape.org)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.
+ *
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at
http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ */
+package org.jboss.tools.modeshape.rest;
+
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsSame.sameInstance;
+import static org.junit.Assert.assertThat;
+import org.jboss.tools.modeshape.rest.ServerManager;
+import org.jboss.tools.modeshape.rest.ServerRegistryEvent;
+import org.junit.Before;
+import org.junit.Test;
+import org.modeshape.web.jcr.rest.client.domain.Server;
+
+public final class ServerRegistryEventTest {
+
+ //
===========================================================================================================================
+ // Constants
+ //
===========================================================================================================================
+
+ private static Server SERVER = new Server("url", "user",
"pswd");
+
+ private static Server UPDATED_SERVER = new Server("newurl",
"newuser", "newpswd");
+
+ //
===========================================================================================================================
+ // Fields
+ //
===========================================================================================================================
+
+ private ServerManager serverManager;
+
+ //
===========================================================================================================================
+ // Methods
+ //
===========================================================================================================================
+
+ @Before
+ public void beforeEach() {
+ this.serverManager = new ServerManager(null, new MockRestClient());
+ }
+
+ //
===========================================================================================================================
+ // Tests
+ //
===========================================================================================================================
+
+ @Test
+ public void shouldHaveNewType() {
+ assertThat(ServerRegistryEvent.createNewEvent(this.serverManager,
SERVER).isNew(), is(true));
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowNullServerManagerWhenCreatingNewEvent() {
+ ServerRegistryEvent.createNewEvent(null, SERVER);
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowNullServerWhenCreatingNewEvent() {
+ ServerRegistryEvent.createNewEvent(this.serverManager, null);
+ }
+
+ @Test( expected = UnsupportedOperationException.class )
+ public void shouldNotBeAllowedToGetUpdatedServerOnNewEvent() {
+ ServerRegistryEvent.createNewEvent(this.serverManager,
SERVER).getUpdatedServer();
+ }
+
+ @Test
+ public void shouldGetSameServerOnNewEvent() {
+ assertThat(ServerRegistryEvent.createNewEvent(this.serverManager,
SERVER).getServer(), sameInstance(SERVER));
+ }
+
+ @Test
+ public void shouldHaveRemoveType() {
+ assertThat(ServerRegistryEvent.createRemoveEvent(this.serverManager,
SERVER).isRemove(), is(true));
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowNullServerManagerWhenCreatingRemoveEvent() {
+ ServerRegistryEvent.createRemoveEvent(null, SERVER);
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowNullServerWhenCreatingRemoveEvent() {
+ ServerRegistryEvent.createRemoveEvent(this.serverManager, null);
+ }
+
+ @Test( expected = UnsupportedOperationException.class )
+ public void shouldNotBeAllowedToGetUpdatedServerOnRemoveEvent() {
+ ServerRegistryEvent.createRemoveEvent(this.serverManager,
SERVER).getUpdatedServer();
+ }
+
+ @Test
+ public void shouldGetSameServerOnRemoveEvent() {
+ assertThat(ServerRegistryEvent.createRemoveEvent(this.serverManager,
SERVER).getServer(), sameInstance(SERVER));
+ }
+
+ @Test
+ public void shouldHaveUpdateType() {
+ assertThat(ServerRegistryEvent.createUpdateEvent(this.serverManager, SERVER,
UPDATED_SERVER).isUpdate(), is(true));
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowNullServerManagerWhenCreatingUpdateEvent() {
+ ServerRegistryEvent.createUpdateEvent(null, SERVER, UPDATED_SERVER);
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowNullServersWhenCreatingUpdateEvent() {
+ ServerRegistryEvent.createUpdateEvent(this.serverManager, null, null);
+ }
+
+ @Test
+ public void shouldGetSameServerOnUpdateEvent() {
+ assertThat(ServerRegistryEvent.createUpdateEvent(this.serverManager, SERVER,
UPDATED_SERVER).getServer(),
+ sameInstance(SERVER));
+ }
+
+ @Test
+ public void shouldGetSameUpdatedServerOnUpdateEvent() {
+ assertThat(ServerRegistryEvent.createUpdateEvent(this.serverManager, SERVER,
UPDATED_SERVER).getUpdatedServer(),
+ sameInstance(UPDATED_SERVER));
+ }
+
+}
Property changes on:
trunk/modeshape/tests/org.jboss.tools.modeshape.rest.test/src/org/jboss/tools/modeshape/rest/ServerRegistryEventTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain