package org.test4j.module.jmockit.demo;
import java.util.Observable;
import java.util.concurrent.Callable;
import mockit.Capturing;
import mockit.Mocked;
import mockit.Verifications;
import org.test4j.module.jmockit.demo.InternalInstancesDemo;
import org.test4j.module.jmockit.demo.Service;
import org.test4j.testng.Test4J;
import org.testng.annotations.Test;
@Test(groups = "testng-demo")
public class InternalInstancesDemoTest extends Test4J {
@Mocked
@Capturing(maxInstances = 10)
Service service;
@Test
public void captureAllInternallyCreatedInstances(@Mocked @Capturing(maxInstances = 1) final Callable<?> callable)
throws Exception {
Service initialMockService = service;
new NonStrictExpectations() {
@Mocked
@Capturing(maxInstances = 1)
Observable observable;
{
service.doSomething();
returns(3, 4);
}
};
InternalInstancesDemo unit = new InternalInstancesDemo();
int result = unit.businessOperation(true);
want.object(unit.observable).notNull();
want.object(initialMockService).not(the.object().same(service));
want.number(result).isEqualTo(7);
new Verifications() {
{
callable.call();
}
};
}
}