Skip to content

Commit

Permalink
yegor256#351 MkTasks, MkTask were implemented
Browse files Browse the repository at this point in the history
  • Loading branch information
longtimeago committed Oct 9, 2014
1 parent af57dc5 commit 68a3f53
Show file tree
Hide file tree
Showing 4 changed files with 159 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/thindeck/api/mock/MkRepo.java
Expand Up @@ -56,7 +56,7 @@ public String name() {

@Override
public Tasks tasks() {
throw new UnsupportedOperationException("#tasks()");
return new MkTasks();
}

@Override
Expand Down
84 changes: 84 additions & 0 deletions 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");
}
}
71 changes: 71 additions & 0 deletions 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<Task> open() {
return Collections.<Task>singleton(new MkTask());
}

@Override
public Iterable<Task> all() {
return Collections.<Task>singleton(new MkTask());
}

@Override
public Task add(final String command, final Map<String, String> args) {
throw new UnsupportedOperationException("MkTasks#add");
}
}
4 changes: 3 additions & 1 deletion src/test/java/com/thindeck/life/LifecycleTest.java
Expand Up @@ -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 {
Expand Down

0 comments on commit 68a3f53

Please sign in to comment.