Mam taką metodę i chciałbym przetestować czy produkt, który zwraca repository dodał się do listy
public String showInformationAboutProduct(String barcode) {
Product product = productRepository.getByBarcode(barcode);
scannedProducts.add(product);
return showOnLcd(product);
}
jak to ugryźć ? Stworzyłem coś takiego ale to nie tak powinno wyglądać.
@Test
public void shouldAddProductToReceipt() {
//given
product = givenProduct("4582664XX", "orange", new BigDecimal(10));
scannedProducts = Lists.newArrayList();
Mockito.when(productRepository.getByBarcode("4582664XX")).thenReturn(product).then(invocationOnMock -> {
Product argumentAt = invocationOnMock.getArgumentAt(0, Product.class);
scannedProducts.add(argumentAt);
return null;
});
//when
singleProductSale.showInformationAboutProduct("4582664XX");
//then
assertThat(scannedProducts).containsOnly(product);
}