diff --git a/KI_Projekt/src/Company.java b/KI_Projekt/src/Company.java index 345ae6b..cc733f4 100644 --- a/KI_Projekt/src/Company.java +++ b/KI_Projekt/src/Company.java @@ -2,8 +2,8 @@ import java.io.Serializable; public class Company implements Serializable{ private String name; - private String address = "siro"; - private String phone; + private String address; + private String phone;//sirat private String email; private boolean isSmallBusiness; diff --git a/KI_Projekt/src/DataManager.java b/KI_Projekt/src/DataManager.java index 646134b..ffd3772 100644 --- a/KI_Projekt/src/DataManager.java +++ b/KI_Projekt/src/DataManager.java @@ -343,6 +343,49 @@ public class DataManager { deliveryNotes = XMLUtils.deserializeObjectFromXML("xml_data/delivery_notes.xml"); invoices = XMLUtils.deserializeObjectFromXML("xml_data/invoices.xml"); } + public List getCompanies() { + return companies; + } + public void setCompanies(List companies) { + this.companies = companies; + } + public List getProducts() { + return products; + } + public void setProducts(List products) { + this.products = products; + } + public List getCustomers() { + return customers; + } + public void setCustomers(List customers) { + this.customers = customers; + } + public List getOffers() { + return offers; + } + public void setOffers(List offers) { + this.offers = offers; + } + public List getOrderConfirmations() { + return orderConfirmations; + } + public void setOrderConfirmations(List orderConfirmations) { + this.orderConfirmations = orderConfirmations; + } + public List getDeliveryNotes() { + return deliveryNotes; + } + public void setDeliveryNotes(List deliveryNotes) { + this.deliveryNotes = deliveryNotes; + } + public List getInvoices() { + return invoices; + } + public void setInvoices(List invoices) { + this.invoices = invoices; + } + } diff --git a/KI_Projekt/src/DataManagerTest.java b/KI_Projekt/src/DataManagerTest.java new file mode 100644 index 0000000..5aa3f15 --- /dev/null +++ b/KI_Projekt/src/DataManagerTest.java @@ -0,0 +1,128 @@ +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import java.util.Scanner; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class DataManagerTest { + private DataManager dataManager; + + @BeforeEach + public void setUp() { + dataManager = new DataManager(); + } + + @Test + public void testEnterCompany() { + dataManager.enterCompany(new Scanner("Firma ABC\nAdresse 123\n1234567890\nemail@abc.com\nja\n")); + List companies = dataManager.getCompanies(); + assertEquals(1, companies.size()); + Company company = companies.get(0); + assertEquals("Firma ABC", company.getName()); + assertEquals("Adresse 123", company.getAddress()); + assertEquals("1234567890", company.getPhone()); + assertEquals("email@abc.com", company.getEmail()); + assertTrue(company.isSmallBusiness()); + } + + @Test + public void testEnterProduct() { + dataManager.enterProduct(new Scanner("Stück\nProdukt XYZ\n12.34\n19\n")); + List products = dataManager.getProducts(); + assertEquals(1, products.size()); + Product product = products.get(0); + assertEquals("Stück", product.getUnit()); + assertEquals("Produkt XYZ", product.getName()); + assertEquals(12.34, product.getNetPrice()); + assertEquals(19, product.getTaxRate()); + } + + @Test + public void testEnterCustomer() { + dataManager.enterCustomer(new Scanner("Adresse 456\nMax Mustermann\nja\n")); + List customers = dataManager.getCustomers(); + assertEquals(1, customers.size()); + Customer customer = customers.get(0); + assertEquals("Adresse 456", customer.getAddress()); + assertEquals("Max Mustermann", customer.getContactPerson()); + assertTrue(customer.isSmallBusiness()); + } + + @Test + public void testCreateOffer() { + dataManager.enterCustomer(new Scanner("Adresse 456\nMax Mustermann\nja\n")); + dataManager.enterProduct(new Scanner("Stück\nProdukt XYZ\n12.34\n19\n")); + dataManager.createOffer(new Scanner("0\n10-06-2023\n0\n5\n-1\n")); + List offers = dataManager.getOffers(); + assertEquals(1, offers.size()); + Offer offer = offers.get(0); + assertEquals(1, offer.getOfferId()); + assertNotNull(offer.getDate()); + assertEquals("Max Mustermann", offer.getCustomer().getContactPerson()); + assertEquals(1, offer.getProducts().size()); + } + + @Test + public void testCreateOrderConfirmation() { + dataManager.enterCustomer(new Scanner("Adresse 456\nMax Mustermann\nja\n")); + dataManager.enterProduct(new Scanner("Stück\nProdukt XYZ\n12.34\n19\n")); + dataManager.createOffer(new Scanner("0\n10-06-2023\n0\n5\n-1\n")); + dataManager.createOrderConfirmation(new Scanner("0\n10-06-2023\n")); + List orderConfirmations = dataManager.getOrderConfirmations(); + assertEquals(1, orderConfirmations.size()); + OrderConfirmation orderConfirmation = orderConfirmations.get(0); + assertEquals(1, orderConfirmation.getConfirmationId()); + assertNotNull(orderConfirmation.getDate()); + assertEquals("Max Mustermann", orderConfirmation.getOffer().getCustomer().getContactPerson()); + } + + @Test + public void testCreateDeliveryNote() { + dataManager.enterCustomer(new Scanner("Adresse 456\nMax Mustermann\nja\n")); + dataManager.enterProduct(new Scanner("Stück\nProdukt XYZ\n12.34\n19\n")); + dataManager.createOffer(new Scanner("0\n10-06-2023\n0\n5\n-1\n")); + dataManager.createOrderConfirmation(new Scanner("0\n10-06-2023\n")); + dataManager.createDeliveryNote(new Scanner("0\n10-06-2023\n")); + List deliveryNotes = dataManager.getDeliveryNotes(); + assertEquals(1, deliveryNotes.size()); + DeliveryNote deliveryNote = deliveryNotes.get(0); + assertEquals(1, deliveryNote.getDeliveryNoteId()); + assertNotNull(deliveryNote.getDate()); + assertEquals("Max Mustermann", deliveryNote.getOrderConfirmation().getOffer().getCustomer().getContactPerson()); + } + + @Test + public void testCreateInvoice() { + dataManager.enterCustomer(new Scanner("Adresse 456\nMax Mustermann\nja\n")); + dataManager.enterProduct(new Scanner("Stück\nProdukt XYZ\n12.34\n19\n")); + dataManager.createOffer(new Scanner("0\n10-06-2023\n0\n5\n-1\n")); + dataManager.createOrderConfirmation(new Scanner("0\n10-06-2023\n")); + dataManager.createDeliveryNote(new Scanner("0\n10-06-2023\n")); + dataManager.createInvoice(new Scanner("0\n10-06-2023\n")); + List invoices = dataManager.getInvoices(); + assertEquals(1, invoices.size()); + Invoice invoice = invoices.get(0); + assertEquals(1, invoice.getInvoiceId()); + assertNotNull(invoice.getDate()); + assertEquals("Max Mustermann", invoice.getDeliveryNote().getOrderConfirmation().getOffer().getCustomer().getContactPerson()); + } + + @Test + public void testDisplayMethods() { + dataManager.enterCompany(new Scanner("Firma ABC\nAdresse 123\n1234567890\nemail@abc.com\nja\n")); + dataManager.enterProduct(new Scanner("Stück\nProdukt XYZ\n12.34\n19\n")); + dataManager.enterCustomer(new Scanner("Adresse 456\nMax Mustermann\nja\n")); + + assertEquals(1, dataManager.getCompanies().size()); + assertEquals(1, dataManager.getProducts().size()); + assertEquals(1, dataManager.getCustomers().size()); + } + + +} + + diff --git a/KI_Projekt/src/Product.java b/KI_Projekt/src/Product.java index 71b62a2..81858e7 100644 --- a/KI_Projekt/src/Product.java +++ b/KI_Projekt/src/Product.java @@ -38,10 +38,43 @@ public class Product implements Serializable { this.netPrice = netPrice; this.taxRate = taxRate; } + // Getter und Setter - private String generateProductNumber() { + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public double getNetPrice() { + return netPrice; + } + + public void setNetPrice(double netPrice) { + this.netPrice = netPrice; + } + + public double getTaxRate() { + return taxRate; + } + + public void setTaxRate(double taxRate) { + this.taxRate = taxRate; + } + + private String generateProductNumber() { return "ART-" + nextProductNumber++; } } diff --git a/KI_Projekt/xml_data/company_Firma ABC.xml b/KI_Projekt/xml_data/company_Firma ABC.xml new file mode 100644 index 0000000..e55752f --- /dev/null +++ b/KI_Projekt/xml_data/company_Firma ABC.xml @@ -0,0 +1,20 @@ + + + + + Adresse 123 + + + email@abc.com + + + Firma ABC + + + 1234567890 + + + true + + + diff --git a/KI_Projekt/xml_data/customer_Max Mustermann.xml b/KI_Projekt/xml_data/customer_Max Mustermann.xml new file mode 100644 index 0000000..15dece2 --- /dev/null +++ b/KI_Projekt/xml_data/customer_Max Mustermann.xml @@ -0,0 +1,3 @@ + + + diff --git a/KI_Projekt/xml_data/customer_sdfi.xml b/KI_Projekt/xml_data/customer_sdfi.xml new file mode 100644 index 0000000..15dece2 --- /dev/null +++ b/KI_Projekt/xml_data/customer_sdfi.xml @@ -0,0 +1,3 @@ + + + diff --git a/KI_Projekt/xml_data/delivery_note_1.xml b/KI_Projekt/xml_data/delivery_note_1.xml new file mode 100644 index 0000000..15dece2 --- /dev/null +++ b/KI_Projekt/xml_data/delivery_note_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/KI_Projekt/xml_data/invoice_1.xml b/KI_Projekt/xml_data/invoice_1.xml new file mode 100644 index 0000000..15dece2 --- /dev/null +++ b/KI_Projekt/xml_data/invoice_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/KI_Projekt/xml_data/offer_1.xml b/KI_Projekt/xml_data/offer_1.xml index 320dede..15dece2 100644 --- a/KI_Projekt/xml_data/offer_1.xml +++ b/KI_Projekt/xml_data/offer_1.xml @@ -1,12 +1,3 @@ - offerId - 1 - date - - 1713736800000 - - customer - products - diff --git a/KI_Projekt/xml_data/order_confirmation_1.xml b/KI_Projekt/xml_data/order_confirmation_1.xml new file mode 100644 index 0000000..15dece2 --- /dev/null +++ b/KI_Projekt/xml_data/order_confirmation_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/KI_Projekt/xml_data/product_Produkt XYZ.xml b/KI_Projekt/xml_data/product_Produkt XYZ.xml new file mode 100644 index 0000000..15dece2 --- /dev/null +++ b/KI_Projekt/xml_data/product_Produkt XYZ.xml @@ -0,0 +1,3 @@ + + + diff --git a/KI_Projekt/xml_data/product_sfd.xml b/KI_Projekt/xml_data/product_sfd.xml new file mode 100644 index 0000000..15dece2 --- /dev/null +++ b/KI_Projekt/xml_data/product_sfd.xml @@ -0,0 +1,3 @@ + + +