I have a class like this:
public class CloudFormationManager
{
private static CloudFormationManager cloudFormationManager;
private final AmazonCloudFormation amazonCloudFormation;
private CloudFormationManager(final AmazonCloudFormation amazonCloudFormation)
{
this.amazonCloudFormation = amazonCloudFormation;
}
public List<StackResource> getStackResources(final String stackName)
{
ListStackResourcesRequest listStackResourcesRequest = new ListStackResourcesRequest();
listStackResourcesRequest.setStackName(stackName);
ListStackResourcesResult listStackResourcesResult =
amazonCloudFormation.listStackResources(listStackResourcesRequest);
if (nonNull(listStackResourcesResult))
return getStackResources(listStackResourcesResult);
else
return Collections.emptyList();
}
}
I am beginning to write UT's for this using Mockito which is as follows:
@Test
public class CloudFormationManagerTest
{
@Mock
private AmazonCloudFormation amazonCloudFormation;
@InjectMocks
CloudFormationManager cloudFormationManager;
@BeforeMethod
public void setUp() throws IOException
{
CloudFormationManager cloudFormationManager = new CloudFormationManager(amazonCloudFormation); // this statement gives an error.
MockitoAnnotations.initMocks(this);
}
@Test
void testGetStackResources()
{
}
}
Now, in the setUp()
method, I see an error saying that this class cannot be initialised and I understand this since it's a private constructor? How do I initialise it then using Mockito?