package tw.com.unit;
import static org.junit.Assert.*;
import org.easymock.EasyMock;
import org.easymock.EasyMockRunner;
import org.easymock.EasyMockSupport;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import tw.com.exceptions.CfnAssistException;
import tw.com.pictures.*;
import com.amazonaws.services.ec2.model.Subnet;
@RunWith(EasyMockRunner.class)
public class TestDiagramFactory extends EasyMockSupport {
private DiagramFactory factory;
private VPCDiagramBuilder parentDiagramBuilder;
private NetworkChildDiagram childNetworkDiagram;
private tw.com.pictures.SecurityChildDiagram childSecurityDiagram;
@Before
public void beforeEachTestRuns() {
parentDiagramBuilder = createStrictMock(VPCDiagramBuilder.class);
childNetworkDiagram = createStrictMock(NetworkChildDiagram.class);
childSecurityDiagram = createStrictMock(tw.com.pictures.SecurityChildDiagram.class);
factory = new DiagramFactory();
}
@Test
public void shouldAddSubnetDiagrm() throws CfnAssistException {
Subnet subnet = new Subnet().withSubnetId("subnetId").withCidrBlock("cidrBlock");
EasyMock.expect(parentDiagramBuilder.createNetworkDiagramForSubnet(subnet)).andReturn(childNetworkDiagram);
EasyMock.expect(parentDiagramBuilder.createSecurityDiagramForSubnet(subnet)).andReturn(childSecurityDiagram);
replayAll();
SubnetDiagramBuilder result = factory.createSubnetDiagramBuilder(parentDiagramBuilder, subnet);
verifyAll();
assertSame(childNetworkDiagram, result.getNetworkDiagram());
}
}