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 2017/02/14 15:12:54 UTC

[04/20] isis git commit: ISIS-1561: refactors simpleapp to use SimpleObjectData for holding sample data

ISIS-1561: refactors simpleapp to use SimpleObjectData for holding sample data


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f04fc056
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f04fc056
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f04fc056

Branch: refs/heads/master
Commit: f04fc05625b0cd38add131261be11cc817fff115
Parents: beed85a
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sun Feb 12 22:15:05 2017 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sun Feb 12 22:15:05 2017 +0000

----------------------------------------------------------------------
 .../fixture/scenario/CreateSimpleObjects.java   | 18 +++----
 .../fixture/scenario/SimpleObjectData.java      | 49 ++++++++++++++++++++
 .../tests/SimpleObject_IntegTest.java           |  6 ++-
 3 files changed, 61 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f04fc056/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java
index 35c4a43..2fc9e55 100644
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java
@@ -19,8 +19,6 @@
 
 package domainapp.modules.simple.fixture.scenario;
 
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
 import javax.annotation.Nullable;
@@ -38,9 +36,6 @@ import lombok.experimental.Accessors;
 @Accessors(chain = true)
 public class CreateSimpleObjects extends FixtureScript {
 
-    public final List<String> NAMES = Collections.unmodifiableList(Arrays.asList(
-            "Foo", "Bar", "Baz", "Frodo", "Froyo", "Fizz", "Bip", "Bop", "Bang", "Boo"));
-
     /**
      * The number of objects to create, up to 10; optional, defaults to 3.
      */
@@ -49,7 +44,7 @@ public class CreateSimpleObjects extends FixtureScript {
     private Integer number;
 
     /**
-     * The simpleobjects created by this fixture (output).
+     * The objects created by this fixture (output).
      */
     @Getter
     private final List<SimpleObject> simpleObjects = Lists.newArrayList();
@@ -57,19 +52,20 @@ public class CreateSimpleObjects extends FixtureScript {
     @Override
     protected void execute(final ExecutionContext ec) {
 
+        int max = SimpleObjectData.values().length;
+
         // defaults
         final int number = defaultParam("number", ec, 3);
 
         // validate
-        if(number < 0 || number > NAMES.size()) {
-            throw new IllegalArgumentException(String.format("number must be in range [0,%d)", NAMES.size()));
+        if(number < 0 || number > max) {
+            throw new IllegalArgumentException(String.format("number must be in range [0,%d)", max));
         }
 
         // execute
         for (int i = 0; i < number; i++) {
-            final String name = NAMES.get(i);
-
-            final SimpleObject simpleObject = wrap(simpleObjectMenu).create(name);
+            final SimpleObjectData data = SimpleObjectData.values()[i];
+            final SimpleObject simpleObject =  data.createWith(wrap(simpleObjectMenu));
             ec.addResult(this, simpleObject);
             simpleObjects.add(simpleObject);
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/f04fc056/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/SimpleObjectData.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/SimpleObjectData.java b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/SimpleObjectData.java
new file mode 100644
index 0000000..8cf4270
--- /dev/null
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/SimpleObjectData.java
@@ -0,0 +1,49 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package domainapp.modules.simple.fixture.scenario;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjectMenu;
+import lombok.AllArgsConstructor;
+
+@AllArgsConstructor
+public enum SimpleObjectData {
+
+    FOO("Foo"),
+    BAR("Bar"),
+    BAZ("Baz"),
+    FRODO("Frodo"),
+    FROYO("Froyo"),
+    FIZZ("Fizz"),
+    BIP("Bip"),
+    BOP("Bop"),
+    BANG("Bang"),
+    BOO("Boo");
+
+    private final String name;
+
+    public SimpleObject createWith(final SimpleObjectMenu menu) {
+        return menu.create(name);
+    }
+
+    public SimpleObject findWith(final SimpleObjectMenu menu) {
+        return menu.findByName(name).get(0);
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/f04fc056/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
index 9ece316..f1404c0 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
@@ -34,7 +34,9 @@ import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleu
 import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp;
 
 import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjectMenu;
 import domainapp.modules.simple.fixture.scenario.CreateSimpleObjects;
+import domainapp.modules.simple.fixture.scenario.SimpleObjectData;
 import domainapp.modules.simple.fixture.teardown.SimpleModuleTearDown;
 import domainapp.modules.simple.integtests.SimpleModuleIntegTestAbstract;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -44,6 +46,8 @@ public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
     @Inject
     FixtureScripts fixtureScripts;
     @Inject
+    SimpleObjectMenu simpleObjectMenu;
+    @Inject
     TransactionService transactionService;
 
     SimpleObject simpleObject;
@@ -56,7 +60,7 @@ public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
         fixtureScripts.runFixtureScript(fs, null);
         transactionService.nextTransaction();
 
-        simpleObject = fs.getSimpleObjects().get(0);
+        simpleObject = SimpleObjectData.FOO.findWith(wrap(simpleObjectMenu));
 
         assertThat(simpleObject).isNotNull();
     }