    @Test
    public void signalInstanceReadyLocalStack() throws Exception {

        HashMap<String, String> tags = new HashMap<>();
        tags.put(CloudFormation.TAG_CLOUDFORMATION_LOGICAL_ID, "resourceTag");
        tags.put(CloudFormation.TAG_CLOUDFORMATION_STACK_NAME, "stackTag");
        Mockito.when(this.ec2Mock.getInstanceTags()).thenReturn(tags);

        try {
            this.cloudFormation.signalReady(null);
            Assert.fail("Null check failed for resource");
        } catch (Exception e) {
            Assert.assertEquals(IllegalArgumentException.class, e.getClass());
        }

        try {
            this.cloudFormation.signalReady("");
            Assert.fail("Empty check failed for resource");
        } catch (Exception e) {
            Assert.assertEquals(IllegalArgumentException.class, e.getClass());
        }

        Mockito.doAnswer(new Answer<Object>() {
            @Override
            public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                SignalResourceRequest req = (SignalResourceRequest) invocationOnMock.getArguments()[0];
                Assert.assertEquals("stackTag", req.getStackName());
                Assert.assertEquals("resource", req.getLogicalResourceId());
                Assert.assertEquals(ResourceSignalStatus.SUCCESS.toString(), req.getStatus());
                Assert.assertEquals("localId", req.getUniqueId());
                return null;
            }
        }).when(this.cfnMock).signalResource(Mockito.any(SignalResourceRequest.class));

        this.cloudFormation.signalReady("resource");
    }