diff options
author | Carlo Zancanaro <carlo@zancanaro.id.au> | 2015-06-05 17:30:46 +1000 |
---|---|---|
committer | Carlo Zancanaro <carlo@zancanaro.id.au> | 2015-06-05 17:30:46 +1000 |
commit | 05ec409ce96da92d430c4a8e58b08d46f42d667a (patch) | |
tree | 2c3d8925fa9dd86cc265dcfbcb1fe5d8ee97cd0b /src/test/java/au/id/zancanaro/javacheck/statem/QueueTest.java | |
parent | 20b1226b4eb10e85497862bd73fe9e9a2f05191d (diff) |
More work on the stateful checker; still not perfect, but it's getting better
Diffstat (limited to 'src/test/java/au/id/zancanaro/javacheck/statem/QueueTest.java')
-rw-r--r-- | src/test/java/au/id/zancanaro/javacheck/statem/QueueTest.java | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/src/test/java/au/id/zancanaro/javacheck/statem/QueueTest.java b/src/test/java/au/id/zancanaro/javacheck/statem/QueueTest.java deleted file mode 100644 index 4cd6345..0000000 --- a/src/test/java/au/id/zancanaro/javacheck/statem/QueueTest.java +++ /dev/null @@ -1,88 +0,0 @@ -package au.id.zancanaro.javacheck.statem; - -import au.id.zancanaro.javacheck.Generator; -import au.id.zancanaro.javacheck.annotations.DataSource; -import au.id.zancanaro.javacheck.annotations.Property; -import au.id.zancanaro.javacheck.junit.Properties; -import org.junit.runner.RunWith; - -import java.util.*; - -import static au.id.zancanaro.javacheck.Generator.pure; -import static au.id.zancanaro.javacheck.Generators.integer; -import static au.id.zancanaro.javacheck.Generators.oneOf; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -@RunWith(Properties.class) -public class QueueTest { - private static final Queue<Integer> queue = new LinkedList<>(); - - @DataSource - public static Generator<CommandList<List<Integer>>> commandGenerator = - new CommandListGenerator<>(state -> oneOf( - pure(new QueuePushCommand()), - pure(new QueuePopCommand()) - )); - - @Property - public void test(CommandList<List<Integer>> commands) { - queue.clear(); - CommandResult<List<Integer>> result = commands.run(null); - assertFalse(result.isFailed()); - } - - private static class QueuePushCommand extends Command<List<Integer>, Integer, Void> { - @Override - public Generator<Integer> argsGenerator(List<Integer> integers) { - return integer(); - } - - @Override - public Void runCommand(Integer integer) { - queue.offer(integer); - return null; - } - - @Override - public List<Integer> nextState(List<Integer> integers, Integer integer, CommandValue<Void> result) { - List<Integer> nextState = new ArrayList<>(integers == null ? new ArrayList<>() : integers); - nextState.add(integer); - return nextState; - } - - @Override - public String toString() { - return "push"; - } - } - - private static class QueuePopCommand extends Command<List<Integer>, Void, Integer> { - @Override - public boolean preCondition(List<Integer> integers, Void aVoid) { - return integers != null && !integers.isEmpty(); - } - - @Override - public Integer runCommand(Void aVoid) { - return queue.poll(); - } - - @Override - public boolean postCondition(List<Integer> oldState, List<Integer> newState, Void aVoid, Integer integer) { - return Objects.equals(integer, oldState.get(0)); - } - - @Override - public List<Integer> nextState(List<Integer> integers, Void aVoid, CommandValue<Integer> result) { - List<Integer> nextState = new ArrayList<>(integers == null ? new ArrayList<>() : integers); - nextState.remove(0); - return nextState; - } - - @Override - public String toString() { - return "pop"; - } - } -} |