You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/05/15 00:41:18 UTC
svn commit: r1338468 [2/2] - in /incubator/isis/trunk/framework/core:
commons/src/main/java/org/apache/isis/core/commons/matchers/
metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/
metamodel/src/main/java/org/apache/isis/core/metamodel/ad...
Added: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java?rev=1338468&view=auto
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java (added)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java Mon May 14 22:41:16 2012
@@ -0,0 +1,218 @@
+package org.apache.isis.core.metamodel.adapter.oid;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+
+/**
+* <dt>CUS:123</dt>
+* <dd>persistent root</dd>
+* <dt>!CUS:123</dt>
+* <dd>transient root</dd>
+* <dt>CUS:123#items</dt>
+* <dd>collection of persistent root</dd>
+* <dt>!CUS:123#items</dt>
+* <dd>collection of transient root</dd>
+* <dt>CUS:123#NME:2</dt>
+* <dd>aggregated object within persistent root</dd>
+* <dt>!CUS:123~NME:2</dt>
+* <dd>aggregated object within transient root</dd>
+* <dt>CUS:123~NME:2~CTY:LON</dt>
+* <dd>aggregated object within aggregated object within root</dd>
+* <dt>CUS:123~NME:2#items</dt>
+* <dd>collection of an aggregated object within root</dd>
+* <dt>CUS:123~NME:2~CTY:LON#streets</dt>
+* <dd>collection of an aggregated object within aggregated object within root</dd>
+*/
+public class OidMarshallerTest_unmarshal {
+
+ private OidMarshaller oidMarshaller;
+
+ @Before
+ public void setUp() throws Exception {
+ oidMarshaller = new OidMarshaller();
+ }
+
+ @Test
+ public void persistentRoot() {
+ final String oidStr = "CUS:123";
+
+ final RootOidDefault rootOid = oidMarshaller.unmarshal(oidStr, RootOidDefault.class);
+ assertThat(rootOid.isTransient(), is(false));
+ assertThat(rootOid.getObjectSpecId(), is(ObjectSpecId.of("CUS")));
+ assertThat(rootOid.getIdentifier(), is("123"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)rootOid));
+ }
+
+ @Test
+ public void persistentRootWithFullyQualifiedSpecId() {
+ final String oidStr = "com.planchase.ClassName:8";
+
+ final RootOidDefault rootOid = oidMarshaller.unmarshal(oidStr, RootOidDefault.class);
+ assertThat(rootOid.isTransient(), is(false));
+ assertThat(rootOid.getObjectSpecId(), is(ObjectSpecId.of("com.planchase.ClassName")));
+ assertThat(rootOid.getIdentifier(), is("8"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)rootOid));
+ }
+
+ @Test
+ public void transientRoot() {
+ final String oidStr = "!CUS:123";
+
+ final RootOidDefault rootOid = oidMarshaller.unmarshal(oidStr, RootOidDefault.class);
+ assertThat(rootOid.isTransient(), is(true));
+ assertThat(rootOid.getObjectSpecId(), is(ObjectSpecId.of("CUS")));
+ assertThat(rootOid.getIdentifier(), is("123"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)rootOid));
+ }
+
+ @Test
+ public void collectionOfPersistentRoot() {
+ final String oidStr = "CUS:123$items";
+
+ final CollectionOid collectionOid = oidMarshaller.unmarshal(oidStr, CollectionOid.class);
+ assertThat(collectionOid.isTransient(), is(false));
+ assertThat(collectionOid.getParentOid(), is((TypedOid)oidMarshaller.unmarshal("CUS:123", RootOidDefault.class)));
+ assertThat(collectionOid.getName(), is("items"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)collectionOid));
+ }
+
+ @Test
+ public void collectionOfTransientRoot() {
+ final String oidStr = "!CUS:123$items";
+
+ final CollectionOid collectionOid = oidMarshaller.unmarshal(oidStr, CollectionOid.class);
+ assertThat(collectionOid.isTransient(), is(true));
+ assertThat(collectionOid.getParentOid(), is((TypedOid)oidMarshaller.unmarshal("!CUS:123", RootOidDefault.class)));
+ assertThat(collectionOid.getName(), is("items"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)collectionOid));
+ }
+
+ @Test
+ public void aggregatedWithinPersistent() {
+ final String oidStr = "CUS:123~NME:2";
+
+ final AggregatedOid aggregatedOid = oidMarshaller.unmarshal(oidStr, AggregatedOid.class);
+ assertThat(aggregatedOid.isTransient(), is(false));
+ assertThat(aggregatedOid.getParentOid(), is((TypedOid)oidMarshaller.unmarshal("CUS:123", RootOidDefault.class)));
+ assertThat(aggregatedOid.getObjectSpecId(), is(ObjectSpecId.of("NME")));
+ assertThat(aggregatedOid.getLocalId(), is("2"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)aggregatedOid));
+ }
+
+ @Test
+ public void aggregatedWithinTransient() {
+ final String oidStr = "!CUS:123~NME:2";
+
+ final AggregatedOid aggregatedOid = oidMarshaller.unmarshal(oidStr, AggregatedOid.class);
+ assertThat(aggregatedOid.isTransient(), is(true));
+ assertThat(aggregatedOid.getParentOid(), is((TypedOid)oidMarshaller.unmarshal("!CUS:123", RootOidDefault.class)));
+ assertThat(aggregatedOid.getObjectSpecId(), is(ObjectSpecId.of("NME")));
+ assertThat(aggregatedOid.getLocalId(), is("2"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)aggregatedOid));
+ }
+
+ @Test
+ public void aggregatedWithinAggregatedWithinRoot() {
+ final String oidStr = "CUS:123~ADR:2~CTY:LON";
+
+ final AggregatedOid aggregatedOid = oidMarshaller.unmarshal(oidStr, AggregatedOid.class);
+ assertThat(aggregatedOid.isTransient(), is(false));
+ assertThat(aggregatedOid.getParentOid(), is((TypedOid)oidMarshaller.unmarshal("CUS:123~ADR:2", AggregatedOid.class)));
+ assertThat(aggregatedOid.getObjectSpecId(), is(ObjectSpecId.of("CTY")));
+ assertThat(aggregatedOid.getLocalId(), is("LON"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)aggregatedOid));
+ }
+
+ @Test
+ public void collectionOfAggregatedWithinRoot() {
+ final String oidStr = "CUS:123~NME:2$items";
+
+ final CollectionOid collectionOid = oidMarshaller.unmarshal(oidStr, CollectionOid.class);
+ assertThat(collectionOid.isTransient(), is(false));
+ assertThat(collectionOid.getParentOid(), is((TypedOid)oidMarshaller.unmarshal("CUS:123~NME:2", AggregatedOid.class)));
+ assertThat(collectionOid.getName(), is("items"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)collectionOid));
+ }
+
+ @Test
+ public void collectionOfAggregatedWithinAggregatedWithinRoot() {
+ final String oidStr = "CUS:123~ADR:2~CTY:LON$streets";
+
+ final CollectionOid collectionOid = oidMarshaller.unmarshal(oidStr, CollectionOid.class);
+ assertThat(collectionOid.isTransient(), is(false));
+ assertThat(collectionOid.getParentOid(), is((TypedOid)oidMarshaller.unmarshal("CUS:123~ADR:2~CTY:LON", AggregatedOid.class)));
+ assertThat(collectionOid.getName(), is("streets"));
+
+ final Oid oid = oidMarshaller.unmarshal(oidStr, Oid.class);
+ assertThat(oid, equalTo((Oid)collectionOid));
+ }
+
+
+ @Test(expected=IllegalArgumentException.class)
+ public void root_forCollection_oidStr() {
+ oidMarshaller.unmarshal("CUS:123~NME:123$items", RootOidDefault.class);
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void root_forAggregated_oidStr() {
+ oidMarshaller.unmarshal("CUS:123~NME:123", RootOidDefault.class);
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void collection_forRoot_oidStr() {
+ oidMarshaller.unmarshal("CUS:123", CollectionOid.class);
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void collection_forAggregated_oidStr() {
+ oidMarshaller.unmarshal("CUS:123~NME:123", CollectionOid.class);
+ }
+
+
+ @Test(expected=IllegalArgumentException.class)
+ public void aggregated_forPersistentRoot_oidStr() {
+ oidMarshaller.unmarshal("CUS:123", AggregatedOid.class);
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void aggregated_forTransientRoot_oidStr() {
+ oidMarshaller.unmarshal("!CUS:123", AggregatedOid.class);
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void aggregated_forCollection_oidStr() {
+ oidMarshaller.unmarshal("CUS:123~NME:123$items", AggregatedOid.class);
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void badPattern() {
+ oidMarshaller.unmarshal("xxx", RootOidDefault.class);
+ }
+
+
+
+}
Propchange: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenPersistent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenPersistent.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenPersistent.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenPersistent.java Mon May 14 22:41:16 2012
@@ -4,18 +4,25 @@ import java.util.Arrays;
import java.util.List;
import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.testsupport.value.ValueTypeContractTestAbstract;
public class RootOidDefaultTest_valueSemantics_whenPersistent extends ValueTypeContractTestAbstract<RootOidDefault> {
@Override
protected List<RootOidDefault> getObjectsWithSameValue() {
- return Arrays.asList(new RootOidDefault("CUS", "123", State.PERSISTENT), new RootOidDefault("CUS", "123", State.PERSISTENT), new RootOidDefault("CUS", "123", State.PERSISTENT));
+ return Arrays.asList(
+ new RootOidDefault(ObjectSpecId.of("CUS"), "123", State.PERSISTENT),
+ new RootOidDefault(ObjectSpecId.of("CUS"), "123", State.PERSISTENT),
+ new RootOidDefault(ObjectSpecId.of("CUS"), "123", State.PERSISTENT));
}
@Override
protected List<RootOidDefault> getObjectsWithDifferentValue() {
- return Arrays.asList(new RootOidDefault("CUS", "123", State.TRANSIENT), new RootOidDefault("CUS", "124", State.PERSISTENT), new RootOidDefault("CUX", "123", State.PERSISTENT));
+ return Arrays.asList(
+ new RootOidDefault(ObjectSpecId.of("CUS"), "123", State.TRANSIENT),
+ new RootOidDefault(ObjectSpecId.of("CUS"), "124", State.PERSISTENT),
+ new RootOidDefault(ObjectSpecId.of("CUX"), "123", State.PERSISTENT));
}
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenTransient.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenTransient.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenTransient.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenTransient.java Mon May 14 22:41:16 2012
@@ -4,18 +4,26 @@ import java.util.Arrays;
import java.util.List;
import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.testsupport.value.ValueTypeContractTestAbstract;
public class RootOidDefaultTest_valueSemantics_whenTransient extends ValueTypeContractTestAbstract<RootOidDefault> {
@Override
protected List<RootOidDefault> getObjectsWithSameValue() {
- return Arrays.asList(new RootOidDefault("CUS", "123", State.TRANSIENT), new RootOidDefault("CUS", "123", State.TRANSIENT), new RootOidDefault("CUS", "123", State.TRANSIENT));
+ return Arrays.asList(
+ new RootOidDefault(ObjectSpecId.of("CUS"), "123", State.TRANSIENT),
+ new RootOidDefault(ObjectSpecId.of("CUS"), "123", State.TRANSIENT),
+ new RootOidDefault(ObjectSpecId.of("CUS"), "123", State.TRANSIENT)
+ );
}
@Override
protected List<RootOidDefault> getObjectsWithDifferentValue() {
- return Arrays.asList(new RootOidDefault("CUS", "123", State.PERSISTENT), new RootOidDefault("CUS", "124", State.TRANSIENT), new RootOidDefault("CUX", "123", State.TRANSIENT));
+ return Arrays.asList(
+ new RootOidDefault(ObjectSpecId.of("CUS"), "123", State.PERSISTENT),
+ new RootOidDefault(ObjectSpecId.of("CUS"), "124", State.TRANSIENT),
+ new RootOidDefault(ObjectSpecId.of("CUX"), "123", State.TRANSIENT));
}
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidConformant.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidConformant.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidConformant.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidConformant.java Mon May 14 22:41:16 2012
@@ -32,7 +32,7 @@ class OidConformant extends RootOidAbstr
@Override
public String enString() {
- return getObjectType() + "|" + getIdentifier();
+ return getObjectSpecId() + "|" + getIdentifier();
}
@Override
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidWithNonPublicDestringMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidWithNonPublicDestringMethod.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidWithNonPublicDestringMethod.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidWithNonPublicDestringMethod.java Mon May 14 22:41:16 2012
@@ -32,7 +32,7 @@ class OidWithNonPublicDestringMethod ext
@Override
public String enString() {
- return getObjectType() + "|1234567A";
+ return getObjectSpecId() + "|1234567A";
}
@Override
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidWithNonStaticDestringMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidWithNonStaticDestringMethod.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidWithNonStaticDestringMethod.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/OidWithNonStaticDestringMethod.java Mon May 14 22:41:16 2012
@@ -32,7 +32,7 @@ class OidWithNonStaticDestringMethod ext
@Override
public String enString() {
- return getObjectType() + "|1234567A";
+ return getObjectSpecId() + "|1234567A";
}
@Override
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/RootOidAbstractForTesting.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/RootOidAbstractForTesting.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/RootOidAbstractForTesting.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/stringable/RootOidAbstractForTesting.java Mon May 14 22:41:16 2012
@@ -20,6 +20,7 @@
package org.apache.isis.core.metamodel.adapter.oid.stringable;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
abstract class RootOidAbstractForTesting implements RootOid {
@@ -29,8 +30,8 @@ abstract class RootOidAbstractForTesting
}
@Override
- public String getObjectType() {
- return "FOO";
+ public ObjectSpecId getObjectSpecId() {
+ return ObjectSpecId.of("FOO");
}
Added: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecIdTest_valueSemantics.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecIdTest_valueSemantics.java?rev=1338468&view=auto
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecIdTest_valueSemantics.java (added)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecIdTest_valueSemantics.java Mon May 14 22:41:16 2012
@@ -0,0 +1,20 @@
+package org.apache.isis.core.metamodel.spec;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.isis.core.testsupport.value.ValueTypeContractTestAbstract;
+
+public class ObjectSpecIdTest_valueSemantics extends ValueTypeContractTestAbstract<ObjectSpecId> {
+
+ @Override
+ protected List<ObjectSpecId> getObjectsWithSameValue() {
+ return Arrays.asList(new ObjectSpecId("CUS"), new ObjectSpecId("CUS"), new ObjectSpecId("CUS"));
+ }
+
+ @Override
+ protected List<ObjectSpecId> getObjectsWithDifferentValue() {
+ return Arrays.asList(new ObjectSpecId("bUS"), new ObjectSpecId("CUt"));
+ }
+
+}
Propchange: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecIdTest_valueSemantics.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefaultTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefaultTest.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefaultTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefaultTest.java Mon May 14 22:41:16 2012
@@ -14,6 +14,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
@@ -71,16 +72,16 @@ public class SpecificationCacheDefaultTe
@Test(expected=IllegalStateException.class)
public void getByObjectType_whenNotSet() {
- specificationCache.getByObjectType("CUS");
+ specificationCache.getByObjectType(ObjectSpecId.of("CUS"));
}
@Test
public void getByObjectType_whenSet() {
- Map<String, ObjectSpecification> specByObjectType = Maps.newHashMap();
- specByObjectType.put("CUS", customerSpec);
+ Map<ObjectSpecId, ObjectSpecification> specByObjectType = Maps.newHashMap();
+ specByObjectType.put(ObjectSpecId.of("CUS"), customerSpec);
- specificationCache.setCacheByObjectType(specByObjectType);
- final ObjectSpecification objectSpec = specificationCache.getByObjectType("CUS");
+ specificationCache.setCacheBySpecId(specByObjectType);
+ final ObjectSpecification objectSpec = specificationCache.getByObjectType(ObjectSpecId.of("CUS"));
assertSame(objectSpec, customerSpec);
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java Mon May 14 22:41:16 2012
@@ -39,11 +39,13 @@ import org.apache.isis.core.metamodel.co
import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
import org.apache.isis.core.metamodel.interactions.ObjectTitleContext;
import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
import org.apache.isis.core.metamodel.spec.ActionType;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.Persistability;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -59,6 +61,10 @@ public class ObjectSpecificationStub ext
private final String name;
private List<ObjectSpecification> subclasses = Collections.emptyList();
private String title;
+ /**
+ * lazily derived, see {@link #getSpecId()}
+ */
+ private ObjectSpecId specId;
private Persistability persistable;
private boolean isEncodeable;
@@ -189,8 +195,11 @@ public class ObjectSpecificationStub ext
}
@Override
- public String getObjectType() {
- return getFullIdentifier();
+ public ObjectSpecId getSpecId() {
+ if(specId == null) {
+ specId = getFacet(ObjectSpecIdFacet.class).value();
+ }
+ return specId;
}
@Override
Copied: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetAbstract.java (from r1331799, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetAbstract.java?p2=incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetAbstract.java&p1=incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetAbstract.java&r1=1331799&r2=1338468&rev=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetAbstract.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetAbstract.java Mon May 14 22:41:16 2012
@@ -20,20 +20,27 @@
package org.apache.isis.core.progmodel.facets.object.objecttype;
import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
-import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectTypeFacet;
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-
-public abstract class ObjectTypeFacetAbstract extends
- SingleStringValueFacetAbstract implements ObjectTypeFacet {
+public abstract class ObjectSpecIdFacetAbstract extends
+ FacetAbstract implements ObjectSpecIdFacet {
public static Class<? extends Facet> type() {
- return ObjectTypeFacet.class;
+ return ObjectSpecIdFacet.class;
}
- public ObjectTypeFacetAbstract(final String value,
+ private final ObjectSpecId value;
+
+ public ObjectSpecIdFacetAbstract(final String value,
final FacetHolder holder) {
- super(ObjectTypeFacetAbstract.type(), holder, value);
+ super(ObjectSpecIdFacetAbstract.type(), holder, false);
+ this.value = ObjectSpecId.of(value);
+ }
+
+ public ObjectSpecId value() {
+ return value;
}
}
Copied: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetDerivedFromClassName.java (from r1331799, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetDerivedFromClassName.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetDerivedFromClassName.java?p2=incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetDerivedFromClassName.java&p1=incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetDerivedFromClassName.java&r1=1331799&r2=1338468&rev=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetDerivedFromClassName.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetDerivedFromClassName.java Mon May 14 22:41:16 2012
@@ -21,9 +21,9 @@ package org.apache.isis.core.progmodel.f
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class ObjectTypeFacetDerivedFromClassName extends ObjectTypeFacetAbstract {
+public class ObjectSpecIdFacetDerivedFromClassName extends ObjectSpecIdFacetAbstract {
- public ObjectTypeFacetDerivedFromClassName(final String value, final FacetHolder holder) {
+ public ObjectSpecIdFacetDerivedFromClassName(final String value, final FacetHolder holder) {
super(value, holder);
}
}
Copied: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetForObjectTypeAnnotation.java (from r1331799, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetAnnotation.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetForObjectTypeAnnotation.java?p2=incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetForObjectTypeAnnotation.java&p1=incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetAnnotation.java&r1=1331799&r2=1338468&rev=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeFacetAnnotation.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectSpecIdFacetForObjectTypeAnnotation.java Mon May 14 22:41:16 2012
@@ -21,9 +21,9 @@ package org.apache.isis.core.progmodel.f
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class ObjectTypeFacetAnnotation extends ObjectTypeFacetAbstract {
+public class ObjectSpecIdFacetForObjectTypeAnnotation extends ObjectSpecIdFacetAbstract {
- public ObjectTypeFacetAnnotation(final String value,
+ public ObjectSpecIdFacetForObjectTypeAnnotation(final String value,
final FacetHolder holder) {
super(value, holder);
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeAnnotationFacetFactory.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeAnnotationFacetFactory.java Mon May 14 22:41:16 2012
@@ -24,7 +24,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectTypeFacet;
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
public class ObjectTypeAnnotationFacetFactory extends AnnotationBasedFacetFactoryAbstract {
@@ -38,8 +38,8 @@ public class ObjectTypeAnnotationFacetFa
FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder()));
}
- private ObjectTypeFacet create(final ObjectType annotation, final FacetHolder holder) {
- return annotation != null ? new ObjectTypeFacetAnnotation(annotation.value(), holder) : null;
+ private ObjectSpecIdFacet create(final ObjectType annotation, final FacetHolder holder) {
+ return annotation != null ? new ObjectSpecIdFacetForObjectTypeAnnotation(annotation.value(), holder) : null;
}
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeDerivedFromClassNameFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeDerivedFromClassNameFacetFactory.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeDerivedFromClassNameFacetFactory.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeDerivedFromClassNameFacetFactory.java Mon May 14 22:41:16 2012
@@ -23,7 +23,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectTypeFacet;
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutorAware;
@@ -39,12 +39,12 @@ public class ObjectTypeDerivedFromClassN
public void process(final ProcessClassContext processClassContaxt) {
final FacetHolder facetHolder = processClassContaxt.getFacetHolder();
// don't trash existing facet
- if(facetHolder.containsDoOpFacet(ObjectTypeFacet.class)) {
+ if(facetHolder.containsDoOpFacet(ObjectSpecIdFacet.class)) {
return;
}
final Class<?> originalClass = processClassContaxt.getCls();
final Class<?> substitutedClass = classSubstitutor.getClass(originalClass);
- FacetUtil.addFacet(new ObjectTypeFacetDerivedFromClassName(substitutedClass.getCanonicalName(), facetHolder));
+ FacetUtil.addFacet(new ObjectSpecIdFacetDerivedFromClassName(substitutedClass.getCanonicalName(), facetHolder));
}
@Override
Modified: incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java Mon May 14 22:41:16 2012
@@ -25,6 +25,7 @@ import java.util.List;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.exceptions.NotYetImplementedException;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.ObjectReflector;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
@@ -118,7 +119,7 @@ public class ProgrammableReflector imple
}
@Override
- public ObjectSpecification lookupByObjectType(String objectType) {
+ public ObjectSpecification lookupBySpecId(ObjectSpecId objectSpecId) {
return null;
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeAnnotationFacetFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeAnnotationFacetFactoryTest.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeAnnotationFacetFactoryTest.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeAnnotationFacetFactoryTest.java Mon May 14 22:41:16 2012
@@ -29,7 +29,8 @@ import org.junit.Test;
import org.apache.isis.applib.annotation.ObjectType;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectTypeFacet;
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.progmodel.facets.AbstractFacetFactoryJUnit4TestCase;
public class ObjectTypeAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4TestCase {
@@ -52,11 +53,11 @@ public class ObjectTypeAnnotationFacetFa
facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetHolderImpl));
- final ObjectTypeFacet facet = facetHolderImpl.getFacet(ObjectTypeFacet.class);
+ final ObjectSpecIdFacet facet = facetHolderImpl.getFacet(ObjectSpecIdFacet.class);
assertThat(facet, is(not(nullValue())));
- assertThat(facet instanceof ObjectTypeFacetAnnotation, is(true));
- assertThat(facet.value(), is("CUS"));
+ assertThat(facet instanceof ObjectSpecIdFacetForObjectTypeAnnotation, is(true));
+ assertThat(facet.value(), is(ObjectSpecId.of("CUS")));
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeDerivedFromClassNameFacetFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeDerivedFromClassNameFacetFactoryTest.java?rev=1338468&r1=1338467&r2=1338468&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeDerivedFromClassNameFacetFactoryTest.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/objecttype/ObjectTypeDerivedFromClassNameFacetFactoryTest.java Mon May 14 22:41:16 2012
@@ -30,7 +30,8 @@ import org.junit.Before;
import org.junit.Test;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectTypeFacet;
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
import org.apache.isis.core.progmodel.facets.AbstractFacetFactoryJUnit4TestCase;
@@ -47,15 +48,16 @@ public class ObjectTypeDerivedFromClassN
facetFactory.setSpecificationLookup(reflector);
facetFactory.setClassSubstitutor(classSubstitutor);
}
+
+ static class Customer {
+ }
+ static class CustomerAsManufacturedByCglibByteCodeEnhancer extends Customer {
+ }
+
@Test
public void installsFacet_andDelegatesToClassSubstitutor() {
- class CustomerAsManufacturedByCglibByteCodeEnhancer {
- }
-
- class Customer {
- }
expectNoMethodsRemoved();
context.checking(new Expectations() {
@@ -67,11 +69,11 @@ public class ObjectTypeDerivedFromClassN
facetFactory.process(new ProcessClassContext(CustomerAsManufacturedByCglibByteCodeEnhancer.class, methodRemover, facetHolderImpl));
- final ObjectTypeFacet facet = facetHolderImpl.getFacet(ObjectTypeFacet.class);
+ final ObjectSpecIdFacet facet = facetHolderImpl.getFacet(ObjectSpecIdFacet.class);
assertThat(facet, is(not(nullValue())));
- assertThat(facet instanceof ObjectTypeFacetDerivedFromClassName, is(true));
- assertThat(facet.value(), is(Customer.class.getCanonicalName()));
+ assertThat(facet instanceof ObjectSpecIdFacetDerivedFromClassName, is(true));
+ assertThat(facet.value(), is(ObjectSpecId.of(Customer.class.getCanonicalName())));
}
}
Added: incubator/isis/trunk/framework/core/testsupport/src/main/java/org/apache/isis/core/testsupport/files/Files.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/testsupport/src/main/java/org/apache/isis/core/testsupport/files/Files.java?rev=1338468&view=auto
==============================================================================
--- incubator/isis/trunk/framework/core/testsupport/src/main/java/org/apache/isis/core/testsupport/files/Files.java (added)
+++ incubator/isis/trunk/framework/core/testsupport/src/main/java/org/apache/isis/core/testsupport/files/Files.java Mon May 14 22:41:16 2012
@@ -0,0 +1,99 @@
+package org.apache.isis.core.testsupport.files;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FilenameFilter;
+
+public final class Files {
+
+ Files(){}
+
+
+ ///////////////////////////////////////////////////////
+ // delete files
+ ///////////////////////////////////////////////////////
+
+
+ public enum Recursion {
+ DO_RECURSE,
+ DONT_RECURSE
+ }
+
+ public static void deleteFiles(final String directoryName, final String fileExtension, Recursion recursion) {
+ deleteFiles(directoryName, filterFileNameExtension(fileExtension), recursion);
+ }
+
+ public static void deleteFiles(final File directory, final String fileExtension, Recursion recursion) {
+ deleteFiles(directory, filterFileNameExtension(fileExtension), recursion);
+ }
+
+ public static void deleteFiles(final String directoryName, final FilenameFilter filter, Recursion recursion) {
+ final File dir = new File(directoryName);
+ deleteFiles(dir, filter, recursion);
+ }
+
+ public static void deleteFiles(final File directory, final FilenameFilter filter, Recursion recursion) {
+ deleteFiles(directory, filter, recursion, new Deleter() {
+ @Override
+ public void deleteFile(File f) {
+ f.delete();
+ }
+ });
+ }
+
+ // introduced for testing of this utility class.
+ interface Deleter {
+ void deleteFile(File f);
+ }
+
+ static void deleteFiles(final File directory, final FilenameFilter filter, Recursion recursion, Deleter deleter) {
+ for (final File file : directory.listFiles(filter)) {
+ deleter.deleteFile(file);
+ }
+
+ if(recursion == Recursion.DO_RECURSE) {
+ for (final File subdir: directory.listFiles(filterDirectory())) {
+ deleteFiles(subdir, filter, recursion, deleter);
+ }
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////
+ // filters
+ ///////////////////////////////////////////////////////
+
+ public static FilenameFilter and(final FilenameFilter... filters) {
+ return new FilenameFilter(){
+
+ @Override
+ public boolean accept(File dir, String name) {
+ for(FilenameFilter filter: filters) {
+ if(!filter.accept(dir, name)) {
+ return false;
+ }
+ }
+ return true;
+ }};
+ }
+
+ public static FilenameFilter filterFileNameExtension(final String fileExtension) {
+ return new FilenameFilter() {
+
+ @Override
+ public boolean accept(final File arg0, final String arg1) {
+ return arg1.endsWith(fileExtension);
+ }
+ };
+ }
+
+ public static FileFilter filterDirectory() {
+ return new FileFilter() {
+ @Override
+ public boolean accept(File arg0) {
+ return arg0.isDirectory();
+ }
+ };
+ }
+
+}
Propchange: incubator/isis/trunk/framework/core/testsupport/src/main/java/org/apache/isis/core/testsupport/files/Files.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/isis/trunk/framework/core/testsupport/src/test/java/org/apache/isis/core/testsupport/files/FilesTest_deleteFiles.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/testsupport/src/test/java/org/apache/isis/core/testsupport/files/FilesTest_deleteFiles.java?rev=1338468&view=auto
==============================================================================
--- incubator/isis/trunk/framework/core/testsupport/src/test/java/org/apache/isis/core/testsupport/files/FilesTest_deleteFiles.java (added)
+++ incubator/isis/trunk/framework/core/testsupport/src/test/java/org/apache/isis/core/testsupport/files/FilesTest_deleteFiles.java Mon May 14 22:41:16 2012
@@ -0,0 +1,66 @@
+package org.apache.isis.core.testsupport.files;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.hamcrest.Description;
+import org.hamcrest.Factory;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.core.testsupport.files.Files.Deleter;
+import org.apache.isis.core.testsupport.files.Files.Recursion;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
+
+public class FilesTest_deleteFiles {
+
+ @Rule
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+
+ @Mock
+ private Deleter deleter;
+
+ @Test
+ public void test() throws IOException {
+ final File cusIdxFile = new File("xml/objects/CUS.xml");
+ final File cus1File = new File("xml/objects/CUS/1.xml");
+ final File cus2File = new File("xml/objects/CUS/2.xml");
+ context.checking(new Expectations() {
+ {
+ one(deleter).deleteFile(with(equalsFile(cusIdxFile)));
+ one(deleter).deleteFile(with(equalsFile(cus1File)));
+ one(deleter).deleteFile(with(equalsFile(cus2File)));
+ }
+ });
+
+ Files.deleteFiles(new File("xml/objects"), Files.filterFileNameExtension(".xml"), Recursion.DO_RECURSE, deleter);
+ }
+
+
+ private static Matcher<File> equalsFile(final File file) throws IOException {
+ final String canonicalPath = file.getCanonicalPath();
+ return new TypeSafeMatcher<File>() {
+
+ @Override
+ public void describeTo(Description arg0) {
+ arg0.appendText("file '" + canonicalPath + "'");
+ }
+
+ @Override
+ public boolean matchesSafely(File arg0) {
+ try {
+ return arg0.getCanonicalPath().equals(canonicalPath);
+ } catch (IOException e) {
+ return false;
+ }
+ }
+ };
+ }
+
+
+}
Propchange: incubator/isis/trunk/framework/core/testsupport/src/test/java/org/apache/isis/core/testsupport/files/FilesTest_deleteFiles.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS.xml?rev=1338468&view=auto
==============================================================================
(empty)
Propchange: incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/1.txt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/1.txt?rev=1338468&view=auto
==============================================================================
(empty)
Propchange: incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/1.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/1.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/1.xml?rev=1338468&view=auto
==============================================================================
(empty)
Propchange: incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/1.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/2.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/2.xml?rev=1338468&view=auto
==============================================================================
(empty)
Propchange: incubator/isis/trunk/framework/core/testsupport/xml/objects/CUS/2.xml
------------------------------------------------------------------------------
svn:eol-style = native