From 68a3f534f5989d99ffb19a8b959aee5025c0940d Mon Sep 17 00:00:00 2001 From: longtimeago Date: Thu, 9 Oct 2014 22:25:50 +0300 Subject: [PATCH] #351 MkTasks, MkTask were implemented --- .../java/com/thindeck/api/mock/MkRepo.java | 2 +- .../java/com/thindeck/api/mock/MkTask.java | 84 +++++++++++++++++++ .../java/com/thindeck/api/mock/MkTasks.java | 71 ++++++++++++++++ .../java/com/thindeck/life/LifecycleTest.java | 4 +- 4 files changed, 159 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/thindeck/api/mock/MkTask.java create mode 100644 src/main/java/com/thindeck/api/mock/MkTasks.java diff --git a/src/main/java/com/thindeck/api/mock/MkRepo.java b/src/main/java/com/thindeck/api/mock/MkRepo.java index 52119675..3de7762e 100644 --- a/src/main/java/com/thindeck/api/mock/MkRepo.java +++ b/src/main/java/com/thindeck/api/mock/MkRepo.java @@ -56,7 +56,7 @@ public String name() { @Override public Tasks tasks() { - throw new UnsupportedOperationException("#tasks()"); + return new MkTasks(); } @Override diff --git a/src/main/java/com/thindeck/api/mock/MkTask.java b/src/main/java/com/thindeck/api/mock/MkTask.java new file mode 100644 index 00000000..9bbd0535 --- /dev/null +++ b/src/main/java/com/thindeck/api/mock/MkTask.java @@ -0,0 +1,84 @@ +/** + * Copyright (c) 2014, Thindeck.com + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: 1) Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. 2) Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. 3) Neither the name of the thindeck.com nor + * the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT + * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.thindeck.api.mock; + +import com.jcabi.aspects.Immutable; +import com.thindeck.api.Scenario; +import com.thindeck.api.Task; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * Mock of {@link Task}. + * + * @author Paul Polishchuk (ppol@yua.fm) + * @version $Id$ + * @since 0.5 + */ +@Immutable +@ToString +@EqualsAndHashCode +public final class MkTask implements Task { + + /** + * Task number. + */ + private final transient long numb; + + /** + * Default ctor. + */ + public MkTask() { + this(0L); + } + + /** + * Ctor. + * @param num Task number + */ + public MkTask(final long num) { + this.numb = num; + } + + @Override + public long number() { + return this.numb; + } + + @Override + public String command() { + return "some_command"; + } + + @Override + public Scenario scenario() { + throw new UnsupportedOperationException("MkTask#scenario"); + } +} diff --git a/src/main/java/com/thindeck/api/mock/MkTasks.java b/src/main/java/com/thindeck/api/mock/MkTasks.java new file mode 100644 index 00000000..893a0534 --- /dev/null +++ b/src/main/java/com/thindeck/api/mock/MkTasks.java @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2014, Thindeck.com + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: 1) Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. 2) Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. 3) Neither the name of the thindeck.com nor + * the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT + * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.thindeck.api.mock; + +import com.jcabi.aspects.Immutable; +import com.thindeck.api.Task; +import com.thindeck.api.Tasks; +import java.util.Collections; +import java.util.Map; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * Mock of {@link Tasks}. + * + * @author Paul Polishchuk (ppol@yua.fm) + * @version $Id$ + * @since 0.5 + */ +@Immutable +@ToString +@EqualsAndHashCode +public final class MkTasks implements Tasks { + + @Override + public Task get(final long number) { + return new MkTask(number); + } + + @Override + public Iterable open() { + return Collections.singleton(new MkTask()); + } + + @Override + public Iterable all() { + return Collections.singleton(new MkTask()); + } + + @Override + public Task add(final String command, final Map args) { + throw new UnsupportedOperationException("MkTasks#add"); + } +} diff --git a/src/test/java/com/thindeck/life/LifecycleTest.java b/src/test/java/com/thindeck/life/LifecycleTest.java index 550d4c9e..b8da166e 100644 --- a/src/test/java/com/thindeck/life/LifecycleTest.java +++ b/src/test/java/com/thindeck/life/LifecycleTest.java @@ -78,7 +78,9 @@ public void initializedBaseAttribute() { /** * RoutineTxn can increment transactions. * @throws IOException In case of error. - * @todo #319 Migrate to com.thindeck.api.mock classes instead of mockito. + * @todo #351 Implement MkScenario and MkStep. + * Rewrite the test after that using mocks from + * com.thindeck.api.mock package instead of mockito. */ @Test public void incrementsTransactionCount() throws IOException {