erp-test-db / src /test /java /com /erp /invoice /InvoiceApiApplicationTests.java
Soumik Bose
first java-app hf
1640aa5
package com.erp.invoice;
import com.erp.invoice.model.Invoice;
import com.erp.invoice.repository.InvoiceRepository;
import com.erp.invoice.service.InvoiceService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
class InvoiceApiApplicationTests {
@Autowired
private InvoiceRepository invoiceRepository;
@Autowired
private InvoiceService invoiceService;
@Test
void contextLoads() {
// Verifies application context loads successfully
}
@Test
void databaseIsSeeded() {
long count = invoiceRepository.count();
assertThat(count).isGreaterThan(0);
}
@Test
void canFetchBySupplierId() {
var results = invoiceService.getInvoicesBySupplierId("SUP-001");
assertThat(results).isNotEmpty();
results.forEach(inv -> assertThat(inv.getSupplierId()).isEqualTo("SUP-001"));
}
@Test
void canFetchByStatus() {
var results = invoiceService.getInvoicesByStatus(Invoice.InvoiceStatus.PAID);
assertThat(results).isNotEmpty();
results.forEach(inv -> assertThat(inv.getStatus()).isEqualTo("PAID"));
}
@Test
void canFetchByInvoiceId() {
var result = invoiceService.getInvoiceByInvoiceId("INV-2024-0001");
assertThat(result).isPresent();
assertThat(result.get().getInvoiceId()).isEqualTo("INV-2024-0001");
}
@Test
void canGenerateSummary() {
var summary = invoiceService.getSummary();
assertThat(summary.getTotalInvoices()).isGreaterThan(0);
assertThat(summary.getCountByStatus()).isNotEmpty();
}
}