BlockTest.java :  » Testing » MockCreator » net » sf » mockcreator » Java Open Source

Java Open Source » Testing » MockCreator 
MockCreator » net » sf » mockcreator » BlockTest.java
package net.sf.mockcreator;

import net.sf.mockcreator.exceptions.MockException;
import net.sf.mockcreator.expectable.MockExpectables;
import net.sf.mockcreator.expectable.StructNoEquals;

public class BlockTest extends TestCase {
    MockExpectables mock;
    MockExpectables mock2;

    public BlockTest(String name) {
        super(name);
    }

    public void setUp() throws Exception {
        super.setUp();
        mock = new MockExpectables();
        mock2 = new MockExpectables();
    }

    public void testExpectInBlock() {
        MockCore.startBlock();
        mock.expectMap(new Struct(5, 6, 7, "hello")).returns(new Struct(1, 1, 1, "1"));
        mock.expectMap(new Struct(1, 2, 3, "bar")).returns(new Struct(2, 2, 2, "2"));
        MockCore.endBlock();

        Struct s1 = mock.map(new Struct(1, 2, 3, "bar"));
        Struct s2 = mock.map(new Struct(5, 6, 7, "hello"));

        assertEquals(2, s1.id);
        assertEquals(1, s2.id);
    }

    public void testAcceptInBlock() {
  StructNoEquals s1 = new StructNoEquals();
  StructNoEquals s2 = new StructNoEquals();

        MockCore.startBlock();
  mock.acceptGet(new Integer(1)).returns(s1);
  mock.acceptGet(new Integer(2)).returns(s2);
        MockCore.endBlock();

        assertEquals(s2,mock.get(2));
        assertEquals(s1,mock.get(1));

  MockCore.verify();
    }

    public void testExpectInBlockTwice() {
        MockCore.startBlock();
        mock.expectMap(new Struct(5, 6, 7, "hello")).returns(new Struct(1, 1, 1, "1"));
        mock.expectMap(new Struct(1, 2, 3, "bar")).returns(new Struct(2, 2, 2, "2"));
        mock.expectMap(new Struct(5, 6, 7, "hello")).returns(new Struct(1, 1, 1, "1"));
        MockCore.endBlock();

        Struct s1 = mock.map(new Struct(1, 2, 3, "bar"));
        Struct s2 = mock.map(new Struct(5, 6, 7, "hello"));
        Struct s3 = mock.map(new Struct(5, 6, 7, "hello"));

        assertEquals(2, s1.id);
        assertEquals(1, s2.id);
        assertEquals(1, s3.id);
    }

    public void testAcceptInBlockTwice() {
        MockCore.startBlock();
        mock.acceptMap(new Struct(5, 6, 7, "hello")).returns(new Struct(1, 1, 1, "1"));
        mock.acceptMap(new Struct(1, 2, 3, "bar")).returns(new Struct(2, 2, 2, "2"));
        mock.acceptMap(new Struct(5, 6, 7, "hello")).returns(new Struct(1, 1, 1, "1"));
        MockCore.endBlock();

        Struct s1 = mock.map(new Struct(1, 2, 3, "bar"));
        Struct s2 = mock.map(new Struct(5, 6, 7, "hello"));
        Struct s3 = mock.map(new Struct(5, 6, 7, "hello"));

        assertEquals(2, s1.id);
        assertEquals(1, s2.id);
        assertEquals(1, s3.id);
    }

    public void testExpectTwoBlocks() {
        MockCore.startBlock();
        mock.expectMap(new Struct(1, 1, 1, "1")).returns(new Struct(1, 1, 1, "11"));
        mock.expectMap(new Struct(2, 2, 2, "1")).returns(new Struct(2, 2, 2, "22"));
        MockCore.endBlock();

        mock.expectMap(new Struct(3, 3, 3, "3")).returns(new Struct(3, 3, 3, "33"));

        MockCore.startBlock();
        mock.expectMap(new Struct(4, 4, 4, "4")).returns(new Struct(4, 4, 4, "44"));
        mock.expectMap(new Struct(5, 5, 5, "5")).returns(new Struct(5, 5, 5, "55"));
        MockCore.endBlock();

        assertEquals(1, mock.map(new Struct(1, 1, 1, "1")).id);
        assertEquals(2, mock.map(new Struct(2, 2, 2, "2")).id);
        assertEquals(3, mock.map(new Struct(3, 3, 3, "3")).id);
        assertEquals(5, mock.map(new Struct(5, 5, 5, "5")).id);
        assertEquals(4, mock.map(new Struct(4, 4, 4, "4")).id);
    }

    public void testExpectTwoBlocksTwoMocks() {
        MockCore.startBlock();
        mock.expectMap(new Struct(1, 1, 1, "1")).returns(new Struct(1, 1, 1, "11"));
        mock.expectMap(new Struct(2, 2, 2, "1")).returns(new Struct(2, 2, 2, "22"));
        mock2.expectMap(new Struct(22, 2, 2, "2.1")).returns(new Struct(222, 2, 2, "2.22"));
        MockCore.endBlock();

        mock.expectMap(new Struct(3, 3, 3, "3")).returns(new Struct(3, 3, 3, "33"));
        mock2.expectMap(new Struct(23, 3, 3, "2.3")).returns(new Struct(223, 3, 3, "2.33"));

        MockCore.startBlock();
        mock2.expectMap(new Struct(24, 4, 4, "2.4")).returns(new Struct(224, 4, 4, "2.44"));
        mock.expectMap(new Struct(4, 4, 4, "4")).returns(new Struct(4, 4, 4, "44"));
        mock.expectMap(new Struct(5, 5, 5, "5")).returns(new Struct(5, 5, 5, "55"));
        MockCore.endBlock();

        assertEquals(1, mock.map(new Struct(1, 1, 1, "1")).id);
        assertEquals(2, mock.map(new Struct(2, 2, 2, "2")).id);
        assertEquals(222, mock2.map(new Struct(22, 2, 2, "2.1")).id);

        assertEquals(3, mock.map(new Struct(3, 3, 3, "3")).id);
        assertEquals(223, mock2.map(new Struct(23, 3, 3, "2.3")).id);

        assertEquals(5, mock.map(new Struct(5, 5, 5, "5")).id);
        assertEquals(224, mock2.map(new Struct(24, 4, 4, "2.44")).id);
        assertEquals(4, mock.map(new Struct(4, 4, 4, "4")).id);
    }

    public void testTwoMocksOfSameType() {
        mock.expectMap(new Struct(1, 1, 1, "1")).returns(new Struct(1, 1, 1, "11"));
        mock2.expectMap(new Struct(2, 2, 2, "2")).returns(new Struct(2, 2, 2, "21"));

        try {
            mock2.map(new Struct(1, 1, 1, "1"));
            fail("was able to call expectation on wrong object");
        } catch (MockException ex) {
        }
    }

    public void testNewMockAfterSetDummy() {
        mock.expectZeroOrMoreMap_Struct_returning_Struct().returns(new Struct(1, 1, 1, "11"));
      
        assertEquals(1, mock.map((Struct) null).id);

        mock2 = new MockExpectables();

        assertEquals(1, mock.map(null).id);
    }

    public void testNewMockAfterExpect() {
        mock.expectMap(null).returns(new Struct(1, 1, 1, "11"));
        mock.expectMap(null).returns(new Struct(1, 1, 1, "11"));

        assertEquals(1, mock.map((Struct) null).id);

        mock2 = new MockExpectables();

        assertEquals(1, mock.map(null).id);
    }

    public void testDoubleStartBlock() {
        MockCore.startBlock();

        try {
            MockCore.startBlock();
            fail();
        } catch (MockException ex) {
        }
    }

    public void testEmptyBlock() {
        MockCore.startBlock();

        try {
            MockCore.endBlock();
            fail();
        } catch (MockException ex) {
        }
    }

    public void testEndBlock() {
        try {
            MockCore.endBlock();
            fail();
        } catch (MockException ex) {
        }
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.