Skip to content
Snippets Groups Projects
Commit c7bc7367 authored by Olav Dagestad Eikrem's avatar Olav Dagestad Eikrem
Browse files

Pasient (Patient) class and test class added

parent 1d3d5a42
Branches
No related tags found
No related merge requests found
Showing
with 265 additions and 0 deletions
package mappe.del2.hospital;
import java.util.Objects;
public class Pasient {
private String firstName;
private String lastName;
private String socialSecurityNumber;
private String diagnosis;
private String generalPractitioner;
public Pasient(String firstName, String lastName, String generalPractitioner, String socialSecurityNumber)throws Exception{
if (socialSecurityNumber.length() != 11 || socialSecurityNumber.contains("[a-zA-Z]")) {
throw new Exception("SSN error");
}else {
this.firstName = firstName;
this.lastName = lastName;
this.generalPractitioner = generalPractitioner;
this.socialSecurityNumber = socialSecurityNumber;
diagnosis = "";
}
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getSocialSecurityNumber() {
return socialSecurityNumber;
}
public void setSocialSecurityNumber(String socialSecurityNumber) {
this.socialSecurityNumber = socialSecurityNumber;
}
public String getDiagnosis() {
return diagnosis;
}
public void setDiagnosis(String diagnosis) {
this.diagnosis = diagnosis;
}
public String getGeneralPractitioner() {
return generalPractitioner;
}
public void setGeneralPractitioner(String generalPractitioner) {
this.generalPractitioner = generalPractitioner;
}
@Override
public String toString() {
return "Pasient{" +
"firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", socialSecurityNumber='" + socialSecurityNumber + '\'' +
", diagnosis='" + diagnosis + '\'' +
", generalPractitioner='" + generalPractitioner + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Pasient pasient = (Pasient) o;
return socialSecurityNumber.equals(pasient.socialSecurityNumber);
}
@Override
public int hashCode() {
return Objects.hash(socialSecurityNumber);
}
}
package mappe.del2.hospital;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class PasientTest {
@Test
@DisplayName("Test pasient creation")
void pasientCreationTests() throws Exception {
Pasient p = new Pasient("Test", "Patient", "Doctor who", "12345678910");
assertEquals("Test", p.getFirstName());
assertEquals("Patient", p.getLastName());
assertEquals("Doctor who", p.getGeneralPractitioner());
assertEquals("12345678910", p.getSocialSecurityNumber());
assertEquals("", p.getDiagnosis());
}
@Test
@DisplayName("Exeption thrown if SSN shorter than 11 characters")
void pasientCreationTestFailSsnToShort(){
Exception e = assertThrows(Exception.class, () ->{
new Pasient("Test", "Patient", "Doctor who", "1234567891");
});
String expected = "SSN error";
String actual = e.getMessage();
assertTrue(actual.contains(expected));
}
@Test
@DisplayName("Exeption thrown if SSN longer than 11 characters")
void pasientCreationTestFailSsnToLong(){
Exception e = assertThrows(Exception.class, () ->{
new Pasient("Test", "Patient", "Doctor who", "123456789101");
});
String expected = "SSN error";
String actual = e.getMessage();
assertTrue(actual.contains(expected));
}
@Test
@DisplayName("Exeption thrown if SSN contains only letters")
void pasientCreationTestFailSsnContainsOnlyLetters(){
Exception e = assertThrows(Exception.class, () ->{
new Pasient("Test", "Patient", "Doctor who", "abcdefghijk");
});
String expected = "SSN error";
String actual = e.getMessage();
assertTrue(actual.contains(expected));
}
@Test
@DisplayName("Exeption thrown if SSN contains one letter")
void pasientCreationTestFailSsnContainsOneLetter(){
Exception e = assertThrows(Exception.class, () ->{
new Pasient("Test", "Patient", "Doctor who", "1234567891a");
});
String expected = "SSN error";
String actual = e.getMessage();
assertTrue(actual.contains(expected));
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<AnchorPane prefHeight="200.0" prefWidth="350.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="mappe.del2.GUI.controllers.DeleteConfirmationController">
<children>
<Button layoutX="142.0" layoutY="88.0" mnemonicParsing="false" onAction="#deletePatient" prefWidth="70.0" text="Ok" AnchorPane.bottomAnchor="15.0" AnchorPane.rightAnchor="100.0" />
<Button layoutX="229.0" layoutY="88.0" mnemonicParsing="false" onAction="#closeWindow" prefWidth="70.0" text="Cancel" AnchorPane.bottomAnchor="15.0" AnchorPane.rightAnchor="20.0" />
<ImageView fitHeight="80.0" fitWidth="80.0" layoutX="180.0" layoutY="36.0" pickOnBounds="true" preserveRatio="true" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="20.0">
<image>
<Image url="@icons/garbage.png" />
</image></ImageView>
<Separator layoutX="14.0" layoutY="107.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="120.0" />
<Label layoutX="21.0" layoutY="133.0" text="Are you sure you would like to delete this item?" AnchorPane.bottomAnchor="50.0" AnchorPane.leftAnchor="20.0" />
<Label layoutX="20.0" layoutY="34.0" text="Delete confirmation" AnchorPane.leftAnchor="20.0" AnchorPane.topAnchor="30.0" />
<Label fx:id="information" layoutX="30.0" layoutY="44.0" text="Customer information" AnchorPane.leftAnchor="20.0" AnchorPane.topAnchor="60.0" />
</children>
</AnchorPane>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<AnchorPane prefHeight="200.0" prefWidth="350.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="mappe.del2.GUI.controllers.InformationDialog">
<children>
<Button layoutX="168.0" layoutY="86.0" mnemonicParsing="false" onAction="#closeWindow" prefWidth="70.0" text="OK" AnchorPane.bottomAnchor="15.0" AnchorPane.rightAnchor="20.0" />
<ImageView fitHeight="50.0" fitWidth="50.0" layoutX="190.0" layoutY="46.0" pickOnBounds="true" preserveRatio="true" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="20.0">
<image>
<Image url="@icons/book.png" />
</image>
</ImageView>
<Separator layoutY="85.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="85.0" />
<Label layoutX="14.0" layoutY="100.0" text="Application created by" AnchorPane.bottomAnchor="85.0" AnchorPane.leftAnchor="14.0" />
<Label layoutX="19.0" layoutY="52.0" text="v0.1-SNAPSHOT" AnchorPane.leftAnchor="19.0" AnchorPane.topAnchor="52.0" />
<Label layoutX="31.0" layoutY="78.0" text="Patient Register" AnchorPane.leftAnchor="20.0" AnchorPane.topAnchor="30.0" />
<Label layoutX="14.0" layoutY="124.0" text="olavdei.edu.ntnu.idatx2001" AnchorPane.bottomAnchor="65.0" AnchorPane.leftAnchor="15.0" />
<Label layoutX="25.0" layoutY="128.0" text="04.2021" AnchorPane.bottomAnchor="45.0" AnchorPane.leftAnchor="15.0" />
</children>
</AnchorPane>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane prefHeight="200.0" prefWidth="350.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="mappe.del2.GUI.controllers.NewPatientDetails">
<children>
<Button layoutX="189.0" layoutY="161.0" mnemonicParsing="false" onAction="#addPatient" prefWidth="70.0" text="Ok" AnchorPane.bottomAnchor="15.0" AnchorPane.rightAnchor="100.0" />
<Button layoutX="234.0" layoutY="161.0" mnemonicParsing="false" onAction="#closeWindow" prefWidth="70.0" text="Cancel" AnchorPane.bottomAnchor="15.0" AnchorPane.rightAnchor="20.0" />
<Label layoutX="14.0" layoutY="115.0" text="Social security number:" AnchorPane.leftAnchor="20.0" />
<Label layoutX="65.0" layoutY="79.0" text="Last name:" AnchorPane.leftAnchor="20.0" />
<Label layoutX="65.0" layoutY="41.0" text="First name:" AnchorPane.leftAnchor="20.0" />
<TextField fx:id="firstNameField" layoutX="175.0" layoutY="38.0" prefWidth="150.0" AnchorPane.rightAnchor="20.0" />
<TextField fx:id="lastNameField" layoutX="175.0" layoutY="76.0" prefWidth="150.0" AnchorPane.rightAnchor="20.0" />
<TextField fx:id="ssnTextField" layoutX="175.0" layoutY="112.0" prefWidth="150.0" AnchorPane.rightAnchor="20.0" />
</children>
</AnchorPane>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="mappe.del2.GUI.controllers.PatientRegister">
<children>
<MenuBar AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" onAction="#importFromCSV" text="Import from .CSV" />
<MenuItem mnemonicParsing="false" onAction="#exportToCSV" text="Export to .CSV" />
<SeparatorMenuItem disable="true" mnemonicParsing="false" />
<MenuItem mnemonicParsing="false" onAction="#quit" text="Exit" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem mnemonicParsing="false" onAction="#addPatient" text="Add new patient" />
<MenuItem mnemonicParsing="false" onAction="#editSelectedPatient" text="Edit selected patient" />
<MenuItem mnemonicParsing="false" onAction="#removeSelectedPatient" text="Remove selected patient" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" onAction="#aboutWindow" text="About" />
</items>
</Menu>
</menus>
</MenuBar>
<Button layoutX="14.0" layoutY="57.0" mnemonicParsing="false" onAction="#addPatient" prefHeight="60.0" prefWidth="60.0" text="Add" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="40.0" />
<Button layoutX="73.0" layoutY="57.0" mnemonicParsing="false" onAction="#removeSelectedPatient" prefHeight="60.0" prefWidth="60.0" text="Remove" AnchorPane.leftAnchor="80.0" AnchorPane.topAnchor="40.0" />
<Button layoutX="136.0" layoutY="57.0" mnemonicParsing="false" onAction="#editSelectedPatient" prefHeight="60.0" prefWidth="60.0" text="Edit" AnchorPane.leftAnchor="150.0" AnchorPane.topAnchor="40.0" />
<TableView fx:id="tableView" prefHeight="255.0" prefWidth="600.0" AnchorPane.bottomAnchor="25.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="110.0">
<columns>
<TableColumn fx:id="firstNameColumn" prefWidth="206.0" text="First name" />
<TableColumn fx:id="lastNameColumn" minWidth="7.0" prefWidth="193.0" text="Last name" />
<TableColumn fx:id="ssnColumn" prefWidth="200.0" text="Social security number" />
</columns>
</TableView>
<Label layoutX="14.0" layoutY="378.0" text="Status" />
</children>
</AnchorPane>
target/classes/icons/avatar.png

8.66 KiB

target/classes/icons/book.png

6.52 KiB

target/classes/icons/cancel.png

10.3 KiB

target/classes/icons/copy.png

4 KiB

target/classes/icons/download-1.png

4.89 KiB

target/classes/icons/download.png

7.85 KiB

target/classes/icons/folder.png

4.82 KiB

target/classes/icons/garbage.png

4.99 KiB

target/classes/icons/upload-1.png

4.65 KiB

File added
File added
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment