blob: 2ff670a81c9a8f9fe7b18f5929e1a6162505b052 [file] [log] [blame]
package com.epam.dlab.billing.gcp.service;
import com.epam.dlab.billing.gcp.dao.BillingDAO;
import com.epam.dlab.billing.gcp.model.GcpBillingData;
import com.epam.dlab.billing.gcp.repository.BillingRepository;
import com.epam.dlab.billing.gcp.service.impl.BillingServiceImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import java.time.LocalDate;
import java.util.Collections;
import java.util.List;
import static org.mockito.Mockito.anyCollection;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class BillingServiceImplTest {
@Mock
private BillingDAO billingDAO;
@Mock
private BillingRepository billingRepository;
@InjectMocks
private BillingServiceImpl billingService;
@Test
public void updateBillingData() throws InterruptedException {
when(billingDAO.getBillingData()).thenReturn(getBillingData());
billingService.updateBillingData();
verify(billingDAO).getBillingData();
verify(billingRepository).deleteByUsageDateRegex(anyString());
verify(billingRepository).insert(anyCollection());
verifyNoMoreInteractions(billingDAO);
}
private List<GcpBillingData> getBillingData() {
return Collections.singletonList(GcpBillingData.builder()
.usageDate(LocalDate.MIN.toString())
.usageDateFrom(LocalDate.MIN)
.usageDateTo(LocalDate.MAX)
.product("product")
.usageType("usageType")
.cost(1d)
.currency("USD")
.tag("exploratoryId")
.build());
}
}