From 8c87c107dc8b01cc5cf9240767039514babd4a2f Mon Sep 17 00:00:00 2001 From: Floris Claessens <FMD.Claessens@student.han.nl> Date: Tue, 6 Jun 2023 15:58:31 +0200 Subject: [PATCH 1/6] Removed dependency to testapi --- .../modules/infrastructure/ui/TestApi.java | 69 ------------------- .../ui/builder/AuctionDetailsBuilder.java | 17 +---- .../controllers/AuctionDetailsController.java | 2 +- .../controllers/AuctionDetailsInteractor.java | 35 +++++++--- 4 files changed, 27 insertions(+), 96 deletions(-) delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/TestApi.java diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/TestApi.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/TestApi.java deleted file mode 100644 index 83cb8ef9..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/TestApi.java +++ /dev/null @@ -1,69 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui; - -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO.AuctionDTO; -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO.CategoryDTO; -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO.UILotDTO; - -import java.util.Date; -import java.util.List; -import java.util.stream.Stream; - -public class TestApi { - public List<AuctionDTO> fetchAuctions() { - return Stream.of( - AuctionDTO - .builder() - .auctionId("id1").auctionType("type1") - .category(CategoryDTO.builder() - .category("Auction A").build()) - .stratDate(new Date()) - .endDate(new Date()) - .build(), - AuctionDTO - .builder() - .auctionId("id2").auctionType("type2") - .category(CategoryDTO.builder() - .category("Auction B").build()) - .stratDate(new Date()) - .endDate(new Date()) - .build(), - AuctionDTO - .builder() - .auctionId("id3").auctionType("type3") - .category(CategoryDTO.builder() - .category("Auction C").build()) - .stratDate(new Date()) - .endDate(new Date()) - .build(), - AuctionDTO - .builder() - .auctionId("id4").auctionType("type4") - .category(CategoryDTO.builder() - .category("Auction D").build()) - .stratDate(new Date()) - .endDate(new Date()) - .build(), - AuctionDTO - .builder() - .auctionId("id5").auctionType("type5") - .category(CategoryDTO.builder() - .category("Auction E").build()) - .stratDate(new Date()) - .endDate(new Date()) - .build() - ) - .map(this::createAuctionData).toList(); - } - - public List<UILotDTO> fetchLots() { - return Stream.of(new UILotDTO("Lotto", "Lot01", 100, "Mooie Grote Stoelen", 5), new UILotDTO("Duo Pelotti", "Lot02", 1, "Kleine dwerghamsters", 200), new UILotDTO("Lötti", "Lot03", 3000, "Mooie Grote Zweedse Tafels", 2)).map(this::createLotData).toList(); - } - - private AuctionDTO createAuctionData(AuctionDTO auction) { - return auction; - } - - private UILotDTO createLotData(UILotDTO lot) { - return lot; - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java index 608bd228..c1991e3f 100644 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java +++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java @@ -88,7 +88,7 @@ public class AuctionDetailsBuilder implements Builder<Region> { auctionDetailsModel.getLotList().addListener((InvalidationListener) observable -> { auctionDetailBox.getChildren().clear(); auctionDetailBox.getChildren().add(buttonBar); - auctionDetailBox.getChildren().addAll(loadLots().stream().map(lotModel -> + auctionDetailBox.getChildren().addAll(auctionDetailsModel.getLotList().stream().map(lotModel -> new LotController(lotModel).getView()).toList()); }); @@ -98,20 +98,7 @@ public class AuctionDetailsBuilder implements Builder<Region> { return scrollPane; } - private List<LotModel> loadLots(){ - List<LotDTO> lots = lotService.getLotsForAuction(auctionDetailsModel.getAuctionID()); - List<LotModel> lotModels = new ArrayList<>(); - for (LotDTO lot: lots) { - LotModel lotModel = new LotModel(); - lotModel.setLotName(lot.getObjectName()); - lotModel.setLotId(lot.getLotid()); - lotModel.setQuantity(lot.getQuantity()); - lotModel.setLotDescription(lot.getDescription()); - lotModel.setReservePrice(lot.getReservePrice()); - lotModels.add(lotModel); - } - return lotModels; - } + private void startAuction() { AuctionDTO auctionDTO = auctionService.getAuctionById(auctionDetailsModel.getAuctionID()); List<LotDTO> lotDTOS = lotService.getLotsForAuction(auctionDetailsModel.getAuctionID()); diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsController.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsController.java index 006c1928..35fa9b87 100644 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsController.java +++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsController.java @@ -27,7 +27,7 @@ public class AuctionDetailsController { private void loadData() { Task<Void> loadTask = new Task<>() { @Override - protected Void call() throws Exception { + protected Void call() { auctionDetailsInteractor.loadData(); return null; } diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsInteractor.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsInteractor.java index 6dc00ed6..719f304e 100644 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsInteractor.java +++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsInteractor.java @@ -1,7 +1,8 @@ package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers; -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO.UILotDTO; -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.TestApi; +import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO; +import nl.han.aim.asd.veilveilig.core.application.usecases.ILotService; +import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.InjectorFactory; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.AuctionDetailsModel; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.LotModel; @@ -10,27 +11,39 @@ import java.util.List; public class AuctionDetailsInteractor { private final AuctionDetailsModel model; - private final List<UILotDTO> lots = new ArrayList<>(); - private final TestApi api = new TestApi(); - + private ILotService lotService; + private final List<LotDTO> lots = new ArrayList<>(); public AuctionDetailsInteractor(AuctionDetailsModel model) { + this.model = model; + lotService = InjectorFactory.injector.getInstance(ILotService.class); } void loadData() { lots.clear(); - lots.addAll(api.fetchLots()); + List<LotDTO> list = new ArrayList<>(); + list.add(new LotDTO()); + lots.addAll(list); } void loadModel() { - model.getLotList().addAll(lots.stream().map(this::createLotModel).toList()); + model.getLotList().addAll(loadLots()); + } + + private List<LotModel> loadLots(){ + List<LotDTO> lots = lotService.getLotsForAuction(model.getAuctionID()); + List<LotModel> lotModels = new ArrayList<>(); + for (LotDTO lot: lots) { + lotModels.add(createLotModel(lot)); + } + return lotModels; } - private LotModel createLotModel(UILotDTO lot) { + private LotModel createLotModel(LotDTO lot) { LotModel result = new LotModel(); - result.setLotDescription(lot.getLotDescription()); - result.setLotName(lot.getLotName()); - result.setLotId(lot.getLotId()); + result.setLotName(lot.getObjectName()); + result.setLotDescription(lot.getDescription()); + result.setLotId(lot.getLotid()); result.setReservePrice(lot.getReservePrice()); result.setQuantity(lot.getQuantity()); -- GitLab From 88f38f0ba93227544c338ca303b62853f1b3027d Mon Sep 17 00:00:00 2001 From: Floris Claessens <FMD.Claessens@student.han.nl> Date: Tue, 6 Jun 2023 16:12:45 +0200 Subject: [PATCH 2/6] Removed a lot of garbage, fixed dependencies on unnecessary DTO's --- .../networkmodule/http/BootstrapHelper.java | 85 ------------------- .../models/JoinNetworkRequest.java | 19 ----- .../models/JoinNetworkResponse.java | 32 ------- .../infrastructure/ui/DTO/AuctionDTO.java | 19 ----- .../infrastructure/ui/DTO/UILotDTO.java | 43 ---------- .../infrastructure/ui/DTO/UserDTO.java | 24 ------ .../ui/builder/LotCreationBuilder.java | 15 +++- .../ui/controllers/AuctionsInteractor.java | 2 +- .../ui/widgetsfx/mvci/ScreenController.java | 38 --------- .../ui/widgetsfx/mvci/ScreenInteractor.java | 29 ------- .../ui/widgetsfx/mvci/ViewBuilder.java | 13 --- .../ui/widgetsfx/mvci/package-info.java | 33 ------- .../widgetsfx/tables/ConfigurableColumn.java | 29 ------- .../ui/widgetsfx/tables/DateCell.java | 28 ------ .../ui/widgetsfx/tables/DateColumn.java | 31 ------- .../ui/widgetsfx/tables/DecimalCell.java | 33 ------- .../ui/widgetsfx/tables/DecimalColumn.java | 33 ------- .../ui/widgetsfx/tables/IntegerCell.java | 19 ----- .../ui/widgetsfx/tables/IntegerColumn.java | 29 ------- .../widgetsfx/tables/ProgressPlaceholder.java | 16 ---- .../ui/widgetsfx/tables/TextCell.java | 24 ------ .../ui/widgetsfx/tables/TextColumn.java | 28 ------ 22 files changed, 13 insertions(+), 609 deletions(-) delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/http/BootstrapHelper.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/models/JoinNetworkRequest.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/models/JoinNetworkResponse.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/AuctionDTO.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/UILotDTO.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/UserDTO.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ScreenController.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ScreenInteractor.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ViewBuilder.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/package-info.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/ConfigurableColumn.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DateCell.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DateColumn.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DecimalCell.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DecimalColumn.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/IntegerCell.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/IntegerColumn.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/ProgressPlaceholder.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/TextCell.java delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/TextColumn.java diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/http/BootstrapHelper.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/http/BootstrapHelper.java deleted file mode 100644 index 2af093aa..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/http/BootstrapHelper.java +++ /dev/null @@ -1,85 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.http; - -import com.google.gson.Gson; -import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkRequest; -import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkResponse; - -import java.io.*; -import java.net.HttpURLConnection; -import java.net.URL; - -@Deprecated -public class BootstrapHelper { - public static JoinNetworkResponse sendJoinRequest(JoinNetworkRequest request, String address) { - try { - URL url = new URL(address + "/joinNetwork"); - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("POST"); - connection.setRequestProperty("Content-Type", "application/json"); - connection.setDoOutput(true); - - Gson gson = new Gson(); - String jsonInputString = gson.toJson(request); - try (OutputStream os = connection.getOutputStream()) { - byte[] input = jsonInputString.getBytes("utf-8"); - os.write(input, 0, input.length); - } - - JoinNetworkResponse response; - int statusCode = connection.getResponseCode(); - if (statusCode == 200) { - response = gson.fromJson(getResponseBody(connection), JoinNetworkResponse.class); - response.setMaster(false); - } else if (statusCode == 201 || statusCode == 208) { - response = new JoinNetworkResponse(); - response.setMaster(true); - } else { - throw new Exception("Unexpected HTTP status code: " + statusCode); - } - - connection.disconnect(); - - return response; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - public static void sendNewMasterRequest(JoinNetworkRequest request, String address) { - try { - URL url = new URL(address + "/updateMaster"); - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("POST"); - connection.setRequestProperty("Content-Type", "application/json"); - connection.setDoOutput(true); - - Gson gson = new Gson(); - String jsonInputString = gson.toJson(request); - try (OutputStream os = connection.getOutputStream()) { - byte[] input = jsonInputString.getBytes("utf-8"); - os.write(input, 0, input.length); - } - - int statusCode = connection.getResponseCode(); - if(statusCode != 200){ - throw new Exception("Unexpected HTTP status code: " + statusCode); - } - - connection.disconnect(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - private static String getResponseBody(HttpURLConnection connection) throws Exception { - StringBuilder responseBuilder = new StringBuilder(); - try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"))) { - String responseLine = null; - while ((responseLine = br.readLine()) != null) { - responseBuilder.append(responseLine.trim()); - } - } - return responseBuilder.toString(); - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/models/JoinNetworkRequest.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/models/JoinNetworkRequest.java deleted file mode 100644 index a71ae7d6..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/models/JoinNetworkRequest.java +++ /dev/null @@ -1,19 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models; - -@Deprecated -public class JoinNetworkRequest { - private String ip; - private int port; - private String email; - private String password; - - // TODO: deze token hier weghalen - private String token = "79f9d26a-c1b1-4c21-9b8e-b61f58f0a657"; - - public JoinNetworkRequest(String ip, int port, String email, String password) { - this.ip = ip; - this.port = port; - this.email = email; - this.password = password; - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/models/JoinNetworkResponse.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/models/JoinNetworkResponse.java deleted file mode 100644 index 33c7a5af..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/models/JoinNetworkResponse.java +++ /dev/null @@ -1,32 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models; - -@Deprecated -public class JoinNetworkResponse { - private String ip; - private int port; - private boolean isMaster; - - public boolean isMaster() { - return isMaster; - } - - public void setMaster(boolean master) { - isMaster = master; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/AuctionDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/AuctionDTO.java deleted file mode 100644 index 23e8c936..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/AuctionDTO.java +++ /dev/null @@ -1,19 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO; - - -import lombok.Builder; -import lombok.Getter; -import lombok.Setter; - -import java.util.Date; - -@Builder -@Getter -@Setter -public class AuctionDTO { - private String auctionId; - private CategoryDTO category; - private String auctionType; - private Date stratDate; - private Date endDate; -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/UILotDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/UILotDTO.java deleted file mode 100644 index a9becd48..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/UILotDTO.java +++ /dev/null @@ -1,43 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO; - -public class UILotDTO { - private String lotName; - - private String lotId; - - private int reservePrice; - private String lotDescription; - private int quantity; - - public UILotDTO(String lotName, String lotId, int reservePrice, String lotDescription, int quantity) { - this.lotName = lotName; - this.lotId = lotId; - this.reservePrice = reservePrice; - this.lotDescription = lotDescription; - this.quantity = quantity; - } - - public String lotNameProperty() { - return lotName; - } - - public String getLotId() { - return lotId; - } - - public int getReservePrice() { - return reservePrice; - } - - public int getQuantity() { - return quantity; - } - - public String getLotDescription() { - return lotDescription; - } - - public String getLotName() { - return lotName; - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/UserDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/UserDTO.java deleted file mode 100644 index cc39066b..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/DTO/UserDTO.java +++ /dev/null @@ -1,24 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO; - -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class UserDTO { - private String email; - private String company; - private String firstname; - private String lastname; - private String address; - private boolean seller; - - public UserDTO(String email, String company, String firstname, String lastname, String address, Boolean seller){ - this.email = email; - this.company = company; - this.firstname = firstname; - this.lastname = lastname; - this.address = address; - this.seller = seller; - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java index e20e6d4e..f45dadb0 100644 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java +++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java @@ -1,5 +1,6 @@ package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.builder; +import com.google.inject.Inject; import com.sun.javafx.scene.control.IntegerField; import javafx.scene.control.*; import javafx.scene.layout.BorderPane; @@ -9,9 +10,9 @@ import javafx.util.Builder; import lombok.Getter; import lombok.Setter; import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO; +import nl.han.aim.asd.veilveilig.core.application.usecases.IAccountService; import nl.han.aim.asd.veilveilig.core.application.usecases.ILotService; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.InjectorFactory; -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO.UILotDTO; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers.AuctionDetailsController; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.LotCreationModel; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.buttons.ButtonWidgets; @@ -36,10 +37,13 @@ public class LotCreationBuilder implements Builder<Region> { private TextField lotDetailField; private IntegerField priceField; private IntegerField quantityField; + @Inject + private IAccountService accountService; public LotCreationBuilder(LotCreationModel lotCreationModel,String auctionID) { this.lotCreationModel = lotCreationModel; lotCreationModel.setParrentAuctionID(auctionID); + accountService = InjectorFactory.injector.getInstance(IAccountService.class); } public ILotService getLotService() { @@ -79,9 +83,14 @@ public class LotCreationBuilder implements Builder<Region> { public void buildAction(GridPane lotCreationForm) { submitLotFormButton = ButtonWidgets.actionButton("Maak Kavel", actionEvent -> { if (validForm(nameField, lotDetailField, priceField, quantityField)) { - UILotDTO lotDTO = new UILotDTO(nameField.getText(), "id", priceField.getValue(), lotDetailField.getText(), quantityField.getValue()); + LotDTO lotDTO = new LotDTO(); + lotDTO.setObjectName(nameField.getText()); + lotDTO.setReservePrice(priceField.getValue()); + lotDTO.setDescription(lotDetailField.getText()); + lotDTO.setQuantity(quantityField.getValue()); + lotDTO.setUserEmail(accountService.getCurrentUserSession().getUserId()); lotService.addLotToAuction( - lotCreationModel.getParrentAuctionID(), buildLot(lotDTO.getLotName(), lotDTO.getLotDescription(), lotDTO.getReservePrice(), lotDTO.getQuantity(), "Test mail") + lotCreationModel.getParrentAuctionID(), buildLot(lotDTO.getObjectName(), lotDTO.getDescription(), lotDTO.getReservePrice(), lotDTO.getQuantity(), lotDTO.getUserEmail()) ); setCenter(lotCreationForm); } diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionsInteractor.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionsInteractor.java index add05b54..2a44ef92 100644 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionsInteractor.java +++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionsInteractor.java @@ -2,9 +2,9 @@ package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import nl.han.aim.asd.veilveilig.core.application.dtos.AuctionDTO; import nl.han.aim.asd.veilveilig.core.application.usecases.IAuctionService; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.InjectorFactory; -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO.AuctionDTO; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.AuctionModel; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.AuctionsModel; diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ScreenController.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ScreenController.java deleted file mode 100644 index 71e1d280..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ScreenController.java +++ /dev/null @@ -1,38 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.mvci; - -import javafx.concurrent.Task; -import javafx.scene.layout.Region; -import javafx.util.Builder; - -public abstract class ScreenController<ViewModelClass> { - - protected Builder<Region> viewBuilder; - protected Region view; - - - protected void load(Runnable postFetchGui) { - Task<Void> fetchTask = new Task<>() { - @Override - protected Void call() { - getInteractor().fetchData(); - return null; - } - }; - fetchTask.setOnSucceeded(evt -> { - getInteractor().updateModel(); - postFetchGui.run(); - }); - Thread fetchThread = new Thread(fetchTask); - fetchThread.start(); - } - - protected abstract ScreenInteractor<ViewModelClass> getInteractor(); - - public Region getView() { - if (view == null) { - view = viewBuilder.build(); - } - return view; - } - -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ScreenInteractor.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ScreenInteractor.java deleted file mode 100644 index a3e4e2b5..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ScreenInteractor.java +++ /dev/null @@ -1,29 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.mvci; - -public abstract class ScreenInteractor<ViewModelClass> { - - protected final ViewModelClass viewModel; - - protected ScreenInteractor(ViewModelClass viewModel) { - this.viewModel = viewModel; - } - - /** - * Method designed to be run in a background thread called by the - * ScreenController load() method from inside a Task call() method. - * Ideally, this method should contain all of the initialization of - * Domain objects from external API's and the persistence layer - */ - - public abstract void fetchData(); - - /** - * Method designed to be run on the FXAT to load data received via - * the fetchData() method into the ViewModel. This method is called - * from the load() method of the ScreenController via the setOnSucceeded() - * method of a Task. - */ - - public abstract void updateModel(); - -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ViewBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ViewBuilder.java deleted file mode 100644 index 2cc01f54..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/ViewBuilder.java +++ /dev/null @@ -1,13 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.mvci; - -import javafx.scene.layout.Region; -import javafx.util.Builder; - -public abstract class ViewBuilder<ViewModelClass> implements Builder<Region> { - - protected ViewModelClass viewModel; - - public ViewBuilder(ViewModelClass viewModel) { - this.viewModel = viewModel; - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/package-info.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/package-info.java deleted file mode 100644 index d4c4f584..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/mvci/package-info.java +++ /dev/null @@ -1,33 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.mvci; - -/* - Implementation of Model-View-Controller-Interactor for JavaFX. - <p> - This construct marries Model-View-Controller with - Entity-Boundary-Controller to provide a framework to allow - a JavaFX GUI to interact with external API's, a persistence layer - and other non-GUI aspects of an application. Coupling is kept to - a minimum. - <p> - Elements: - <p> - Model - Model should be a POJO with JavaFX Observable classes as - the fields. - <p> - View - Strictly the GUI layout, elements in the GUI should be bound - to the fields in the Model as required. This way the View - and the Model are constantly in sync. - <p> - Controller - The Controller handles instantiation of all of the other elements - and all of the threading required to handle non-GUI processing - off the FXAT - <p> - Interactor - The Interactor contains all of the business logic and interface - to the non-GUI aspects of the system. The Interactor is given - a reference to the Model, and is able to read from it and update - it as appropriate. - <p> - It is recommended that JavaFX classes are extended only to broaden their functionality - and that they are not extended merely for configuration. For this reason, the View - is to be constructed by an implementation of the Builder interface. - */ \ No newline at end of file diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/ConfigurableColumn.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/ConfigurableColumn.java deleted file mode 100644 index e2270f71..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/ConfigurableColumn.java +++ /dev/null @@ -1,29 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - - -import javafx.scene.control.TableColumn; - -public abstract class ConfigurableColumn<CHILD extends ConfigurableColumn<CHILD, S, T>, S, T> extends TableColumn<S, T> { - - public ConfigurableColumn(String columnHeading) { - super(columnHeading); - } - - protected abstract CHILD getThis(); - - public CHILD withMinWidth(double width) { - setMinWidth(width); - return getThis(); - } - - public CHILD withMaxWidth(double width) { - setMaxWidth(width); - return getThis(); - } - - public CHILD withFixedWidth(double width) { - setMinWidth(width); - setMaxWidth(width); - return getThis(); - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DateCell.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DateCell.java deleted file mode 100644 index cfa11f7d..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DateCell.java +++ /dev/null @@ -1,28 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.DateWidgets; -import javafx.beans.binding.Bindings; -import javafx.geometry.Pos; -import javafx.scene.control.TableCell; -import javafx.scene.text.Text; - -import java.time.LocalDate; - -public class DateCell<TableModel> extends TableCell<TableModel, LocalDate> { - - Text text = new Text(); - - public DateCell() { - super(); - initialize(); - } - - private void initialize() { - text.getStyleClass().add("data-text-cell"); - text.textProperty().bind(Bindings.createStringBinding(() -> (itemProperty().get() != null) ? - DateWidgets.formatDate(itemProperty().get()) : "", itemProperty())); - setGraphic(text); - setAlignment(Pos.CENTER_RIGHT); - } - -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DateColumn.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DateColumn.java deleted file mode 100644 index 5fac53a6..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DateColumn.java +++ /dev/null @@ -1,31 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import javafx.beans.value.ObservableValue; -import javafx.util.Callback; - -import java.time.LocalDate; - -public class DateColumn<TableModel> extends ConfigurableColumn<DateColumn<TableModel>, TableModel, LocalDate> { - - public DateColumn(String columnHeading) { - super(columnHeading); - initialize(); - } - - public DateColumn(String columnHeading, Callback<CellDataFeatures<TableModel, LocalDate>, ObservableValue<LocalDate>> valueCallback) { - super(columnHeading); - setCellValueFactory(valueCallback); - initialize(); - } - - private void initialize() { - setMinWidth(80); - setMaxWidth(80); - setCellFactory(column -> new DateCell<>()); - } - - @Override - protected DateColumn<TableModel> getThis() { - return this; - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DecimalCell.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DecimalCell.java deleted file mode 100644 index 2ad0084c..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DecimalCell.java +++ /dev/null @@ -1,33 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import javafx.beans.binding.Bindings; -import javafx.geometry.Pos; -import javafx.scene.control.TableCell; -import javafx.scene.text.Text; - -import java.text.DecimalFormat; - -public class DecimalCell<TableModel> extends TableCell<TableModel, Double> { - - Text text = new Text(); - DecimalFormat df = new DecimalFormat("#.00"); - - public DecimalCell() { - super(); - initialize(); - } - - public DecimalCell(String formatPattern) { - super(); - df = new DecimalFormat(formatPattern); - initialize(); - } - - private void initialize() { - text.getStyleClass().add("data-text"); - text.textProperty().bind(Bindings.createStringBinding(() -> (itemProperty().get() != null) ? df.format(itemProperty().get()) : "", - itemProperty())); - setGraphic(text); - setAlignment(Pos.CENTER_RIGHT); - } -} \ No newline at end of file diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DecimalColumn.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DecimalColumn.java deleted file mode 100644 index c07423c5..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/DecimalColumn.java +++ /dev/null @@ -1,33 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import javafx.beans.value.ObservableValue; -import javafx.util.Callback; - -public class DecimalColumn<TableModel> extends ConfigurableColumn<DecimalColumn<TableModel>, TableModel, Double> { - - private String formatString = "#.00"; - - public DecimalColumn(String columnHeading) { - super(columnHeading); - setCellFactory(column -> new DecimalCell<>(formatString)); - } - - @Override - protected DecimalColumn<TableModel> getThis() { - return this; - } - - public DecimalColumn(String columnHeading, - Callback<CellDataFeatures<TableModel, Double>, ObservableValue<Double>> valueCallback) { - super(columnHeading); - setCellFactory(column -> new DecimalCell<>(formatString)); - setCellValueFactory(valueCallback); - } - - public DecimalColumn<TableModel> withFormat(String formatString) { - this.formatString = formatString; - setCellFactory(column -> new DecimalCell<>(formatString)); - return this; - } - -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/IntegerCell.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/IntegerCell.java deleted file mode 100644 index 931cbf0b..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/IntegerCell.java +++ /dev/null @@ -1,19 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import javafx.beans.binding.Bindings; -import javafx.geometry.Pos; -import javafx.scene.control.TableCell; -import javafx.scene.text.Text; - -public class IntegerCell<TableModel> extends TableCell<TableModel, Integer> { - - Text text = new Text(); - - public IntegerCell() { - text.getStyleClass().add("data-text"); - text.textProperty().bind(Bindings.createStringBinding(() -> (itemProperty().get() != null) ? itemProperty().get().toString() : "", - itemProperty())); - setGraphic(text); - setAlignment(Pos.CENTER_RIGHT); - } -} \ No newline at end of file diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/IntegerColumn.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/IntegerColumn.java deleted file mode 100644 index d0d337c9..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/IntegerColumn.java +++ /dev/null @@ -1,29 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import javafx.beans.value.ObservableValue; -import javafx.util.Callback; - -public class IntegerColumn<TableModel> extends ConfigurableColumn<IntegerColumn<TableModel>, TableModel, Integer> { - - public IntegerColumn(String columnHeading) { - super(columnHeading); - setCellFactory(column -> new IntegerCell<>()); - } - - @Override - protected IntegerColumn<TableModel> getThis() { - return this; - } - - public IntegerColumn(String columnHeading, Callback<CellDataFeatures<TableModel, Integer>, ObservableValue<Integer>> valueCallback) { - super(columnHeading); - setCellFactory(column -> new IntegerCell<>()); - setCellValueFactory(valueCallback); - } - - public IntegerColumn<TableModel> withPreferredWidth(double width) { - setPrefWidth(width); - return this; - } - -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/ProgressPlaceholder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/ProgressPlaceholder.java deleted file mode 100644 index 36cef7e1..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/ProgressPlaceholder.java +++ /dev/null @@ -1,16 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.text.Texts; -import javafx.geometry.Pos; -import javafx.scene.control.ProgressIndicator; -import javafx.scene.layout.VBox; - -public class ProgressPlaceholder extends VBox { - - public ProgressPlaceholder(String message) { - setSpacing(10); - getChildren().addAll(new ProgressIndicator(-1), Texts.label(message)); - setFillWidth(true); - setAlignment(Pos.CENTER); - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/TextCell.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/TextCell.java deleted file mode 100644 index 927f7035..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/TextCell.java +++ /dev/null @@ -1,24 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import javafx.scene.control.TableCell; -import javafx.scene.text.Text; - -public class TextCell<TableModel> extends TableCell<TableModel, String> { - - Text text = new Text(); - - public TextCell() { - initialize(); - } - - public TextCell(double wrappingWidth) { - initialize(); - text.setWrappingWidth(wrappingWidth); - } - - private void initialize() { - text.getStyleClass().add("data-text-cell"); - text.textProperty().bind(itemProperty()); - setGraphic(text); - } -} diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/TextColumn.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/TextColumn.java deleted file mode 100644 index 05c78f62..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/widgetsfx/tables/TextColumn.java +++ /dev/null @@ -1,28 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.tables; - -import javafx.beans.value.ObservableValue; -import javafx.util.Callback; - -public class TextColumn<TableModel> extends ConfigurableColumn<TextColumn<TableModel>, TableModel, String> { - - public TextColumn(String columnHeading) { - super(columnHeading); - setCellFactory(column -> new TextCell<>()); - } - - @Override - protected TextColumn<TableModel> getThis() { - return this; - } - - public TextColumn(String columnHeading, Callback<CellDataFeatures<TableModel, String>, ObservableValue<String>> valueCallback) { - super(columnHeading); - setCellFactory(column -> new TextCell<>()); - setCellValueFactory(valueCallback); - } - - public TextColumn<TableModel> withWrappingWidth(double wrappingWidth) { - setCellFactory(column -> new TextCell<>(wrappingWidth)); - return this; - } -} -- GitLab From de1de44d6a49b3b9ac26d7532a0b80a326fe3aff Mon Sep 17 00:00:00 2001 From: LukavRing <l.vanRingelestein@student.han.nl> Date: Tue, 6 Jun 2023 16:33:27 +0200 Subject: [PATCH 3/6] Moved add button bar, so it also gets added when there are no lots in an auction --- .../infrastructure/ui/builder/AuctionDetailsBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java index c1991e3f..99c0269e 100644 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java +++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java @@ -84,10 +84,10 @@ public class AuctionDetailsBuilder implements Builder<Region> { buttonBar.setSpacing(20); buttonBar.getChildren().add(makeLot); buttonBar.getChildren().add(startAuction); + auctionDetailBox.getChildren().add(buttonBar); auctionDetailsModel.getLotList().addListener((InvalidationListener) observable -> { auctionDetailBox.getChildren().clear(); - auctionDetailBox.getChildren().add(buttonBar); auctionDetailBox.getChildren().addAll(auctionDetailsModel.getLotList().stream().map(lotModel -> new LotController(lotModel).getView()).toList()); }); -- GitLab From 6cb7f7e7da0156a79e42ba4e087a06793ca638ae Mon Sep 17 00:00:00 2001 From: Floris Claessens <FMD.Claessens@student.han.nl> Date: Wed, 7 Jun 2023 09:01:49 +0200 Subject: [PATCH 4/6] Comitting so Marco can try to sovle this integration test --- .../ui/builder/LotCreationBuilder.java | 7 +++++-- .../usecases/LotServiceIntegrationTest.java | 12 +++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java index f45dadb0..20e3fcae 100644 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java +++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java @@ -37,13 +37,15 @@ public class LotCreationBuilder implements Builder<Region> { private TextField lotDetailField; private IntegerField priceField; private IntegerField quantityField; - @Inject private IAccountService accountService; public LotCreationBuilder(LotCreationModel lotCreationModel,String auctionID) { this.lotCreationModel = lotCreationModel; lotCreationModel.setParrentAuctionID(auctionID); - accountService = InjectorFactory.injector.getInstance(IAccountService.class); + } + + public IAccountService getAccountService() { + return InjectorFactory.injector.getInstance(IAccountService.class); } public ILotService getLotService() { @@ -82,6 +84,7 @@ public class LotCreationBuilder implements Builder<Region> { public void buildAction(GridPane lotCreationForm) { submitLotFormButton = ButtonWidgets.actionButton("Maak Kavel", actionEvent -> { + accountService = getAccountService(); if (validForm(nameField, lotDetailField, priceField, quantityField)) { LotDTO lotDTO = new LotDTO(); lotDTO.setObjectName(nameField.getText()); diff --git a/src/test/java/nl/han/aim/asd/veilveilig/core/application/usecases/LotServiceIntegrationTest.java b/src/test/java/nl/han/aim/asd/veilveilig/core/application/usecases/LotServiceIntegrationTest.java index c8b1d51c..69eda5e2 100644 --- a/src/test/java/nl/han/aim/asd/veilveilig/core/application/usecases/LotServiceIntegrationTest.java +++ b/src/test/java/nl/han/aim/asd/veilveilig/core/application/usecases/LotServiceIntegrationTest.java @@ -6,6 +6,7 @@ import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import nl.han.aim.asd.veilveilig.core.application.adapters.StorageAdapter; import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO; +import nl.han.aim.asd.veilveilig.core.application.dtos.UserSessionDTO; import nl.han.aim.asd.veilveilig.core.application.ports.IStoragePort; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.builder.LotCreationBuilder; import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.LotCreationModel; @@ -33,6 +34,7 @@ class LotServiceIntegrationTest { private LotCreationModel lotCreationModel; @Mock private IStoragePort storagePort; + @Mock IAccountService accountService; @BeforeAll static void init() { @@ -47,15 +49,23 @@ class LotServiceIntegrationTest { MockitoAnnotations.openMocks(this); storagePort = Mockito.mock(StorageAdapter.class); when(lotCreationModel.getParrentAuctionID()).thenReturn("auctionID"); + accountService = mock(AccountService.class); lotService = new LotService(); sut = mock(LotCreationBuilder.class); // Use the mock object instead of creating a new instance when(sut.getLotService()).thenReturn(new LotService()); + + UserSessionDTO usDTO = new UserSessionDTO(); + usDTO.setUserId("SomeId"); + doCallRealMethod().when(accountService).setUserSession(any()); + accountService.setUserSession(usDTO); + when(sut.getAccountService()).thenReturn(accountService); + doNothing().when(accountService).setUserSession(any()); doCallRealMethod().when(sut).buildAction(any(GridPane.class)); doCallRealMethod().when(sut).validForm(any(TextField.class), any(TextField.class), any(IntegerField.class), any(IntegerField.class)); doCallRealMethod().when(sut).getSubmitLotFormButton(); - + doCallRealMethod().when(sut).setAccountService(accountService); doCallRealMethod().when(sut).setNameField(any(TextField.class)); doCallRealMethod().when(sut).setLotDetailField(any(TextField.class)); doCallRealMethod().when(sut).setPriceField(any(IntegerField.class)); -- GitLab From 47da65163b419db98dbc79acb7e835cd6eca49c7 Mon Sep 17 00:00:00 2001 From: Floris Claessens <FMD.Claessens@student.han.nl> Date: Wed, 7 Jun 2023 09:23:26 +0200 Subject: [PATCH 5/6] removed one more unused class --- .../modules/infrastructure/ui/models/Kavel.java | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/models/Kavel.java diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/models/Kavel.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/models/Kavel.java deleted file mode 100644 index 7d6248b8..00000000 --- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/models/Kavel.java +++ /dev/null @@ -1,9 +0,0 @@ -package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models; - -public class Kavel { - private String objectName; - private Integer reservePrice; - private String description; - private Integer quantity; - private String category; -} -- GitLab From be2905c3fe1d3758f7ad157c54cd22289e063cc1 Mon Sep 17 00:00:00 2001 From: Marco Noppen <M.Noppen1@student.han.nl> Date: Wed, 7 Jun 2023 09:31:46 +0200 Subject: [PATCH 6/6] Fixed; AccountService integration --- .../core/application/usecases/AccountService.java | 2 ++ .../application/usecases/LotServiceIntegrationTest.java | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/application/usecases/AccountService.java b/src/main/java/nl/han/aim/asd/veilveilig/core/application/usecases/AccountService.java index eb83348c..9a6b0bfc 100644 --- a/src/main/java/nl/han/aim/asd/veilveilig/core/application/usecases/AccountService.java +++ b/src/main/java/nl/han/aim/asd/veilveilig/core/application/usecases/AccountService.java @@ -1,6 +1,7 @@ package nl.han.aim.asd.veilveilig.core.application.usecases; import com.google.inject.Inject; +import lombok.Getter; import lombok.Setter; import nl.han.aim.asd.veilveilig.core.application.dtos.UserDTO; import nl.han.aim.asd.veilveilig.core.application.dtos.UserSessionDTO; @@ -8,6 +9,7 @@ import nl.han.aim.asd.veilveilig.core.application.ports.IStoragePort; @Setter //This is added for testing purposes. public class AccountService implements IAccountService { + @Getter @Inject IStoragePort storagePort; diff --git a/src/test/java/nl/han/aim/asd/veilveilig/core/application/usecases/LotServiceIntegrationTest.java b/src/test/java/nl/han/aim/asd/veilveilig/core/application/usecases/LotServiceIntegrationTest.java index 69eda5e2..6567a2e9 100644 --- a/src/test/java/nl/han/aim/asd/veilveilig/core/application/usecases/LotServiceIntegrationTest.java +++ b/src/test/java/nl/han/aim/asd/veilveilig/core/application/usecases/LotServiceIntegrationTest.java @@ -44,6 +44,9 @@ class LotServiceIntegrationTest { } } + /* + * We only test if the lotservice storage is verified. AccountService is mocked. + */ @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); @@ -59,9 +62,10 @@ class LotServiceIntegrationTest { UserSessionDTO usDTO = new UserSessionDTO(); usDTO.setUserId("SomeId"); doCallRealMethod().when(accountService).setUserSession(any()); - accountService.setUserSession(usDTO); when(sut.getAccountService()).thenReturn(accountService); + when(accountService.getCurrentUserSession()).thenReturn(usDTO); doNothing().when(accountService).setUserSession(any()); + accountService.setUserSession(usDTO); doCallRealMethod().when(sut).buildAction(any(GridPane.class)); doCallRealMethod().when(sut).validForm(any(TextField.class), any(TextField.class), any(IntegerField.class), any(IntegerField.class)); doCallRealMethod().when(sut).getSubmitLotFormButton(); -- GitLab