diff --git a/src/main/java/jamesbarclay/Worker.java b/src/main/java/jamesbarclay/Worker.java new file mode 100644 index 0000000..e43f3e9 --- /dev/null +++ b/src/main/java/jamesbarclay/Worker.java @@ -0,0 +1,93 @@ +package jamesbarclay; + +public class Worker { + + private String firstName; + private String lastName; + private int age; + private String email; + private int IdNumber; + private String phoneNumber; + + + public Worker(String firstName, String lastName, int age, + String email, int IdNumber, String phoneNumber) { + + + if (phoneNumber == null || phoneNumber.isEmpty()) { + throw new IllegalArgumentException("Phone number cannot be empty"); + } + + this.firstName = firstName; + this.lastName = lastName; + this.age = age; + this.IdNumber = IdNumber; + this.email = email; + this.phoneNumber = phoneNumber; + } + + // Getters + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public int getAge() { + return age; + } + + public String getEmail() { + return email; + } + + public int getIdNumber() { + return IdNumber; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + // Setters + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public void setAge(int age) { + this.age = age; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setIdNumber(int IdNumber) { + this.IdNumber = IdNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + + if (phoneNumber == null || phoneNumber.isEmpty()) { + throw new IllegalArgumentException("Phone number cannot be empty"); + } + } + // Custom Method #1 + // Returns the worker's full name + public String getFullName() { + return firstName + " " + lastName; + } + + // Custom Method #2 + // Checks if the worker is an adult + public boolean isAdult() { + return age >= 18; + } +} \ No newline at end of file diff --git a/src/main/java/jamesbarclay/WorkerTest.java b/src/main/java/jamesbarclay/WorkerTest.java new file mode 100644 index 0000000..f9ae731 --- /dev/null +++ b/src/main/java/jamesbarclay/WorkerTest.java @@ -0,0 +1,95 @@ +package jamesbarclay; + +//compares expected vs actual values +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertTrue; + +// creates tests +import org.testng.annotations.Test; + +public class WorkerTest { + + // This test checks if the constructor correctly creates a Worker object + @Test + public void constructorShouldCreateWorkerWithValidData() { + + // Create a new Worker object using the constructor + Worker worker = new Worker("James", "Barclay", 34, "JB@gmail.com", + 12345, "302-555-5555"); + + // Check if values were passed into the constructor correctly + assertEquals("James", worker.getFirstName()); + assertEquals("Barclay", worker.getLastName()); + assertEquals(34, worker.getAge()); + assertEquals(12345, worker.getIdNumber()); + assertEquals("JB@gmail.com", worker.getEmail()); + assertEquals("302-555-5555", worker.getPhoneNumber()); + } + + // This test checks that the setter methods to be able to update the Worker values + @Test + public void settersShouldUpdateValues() { + + // Create a Worker object with starting values + Worker worker = new Worker("Mike", "M", 40, "Mike@gmail.com", + 54321, "222-222-2222"); + + // Use setter methods to change the values + worker.setFirstName("J"); + worker.setLastName("B"); + worker.setAge(50); + worker.setEmail("jbs@gmail.com"); + worker.setIdNumber(11111); + worker.setPhoneNumber("333-333-3333"); + + // Verify that the values were updated + assertEquals("J", worker.getFirstName()); + assertEquals("B", worker.getLastName()); + assertEquals(50, worker.getAge()); + assertEquals("jbs@gmail.com", worker.getEmail()); + assertEquals(11111, worker.getIdNumber()); + assertEquals("333-333-3333", worker.getPhoneNumber()); + } + // Test custom method getFullName() + @Test + public void getFullNameShouldReturnFullName() { + + Worker worker = new Worker("James", "Barclay", 34, + "jb@gmail.com", 12345, "302-555-5555"); + + assertEquals("James Barclay", worker.getFullName()); + } + + // Test custom method isAdult() + @Test + public void isAdultShouldReturnTrueForAdult() { + + Worker worker = new Worker("James", "Barclay", 34, + "jb@gmail.com", 12345, "302-555-5555"); + + assertTrue(worker.isAdult()); + } + + // This test checks that the constructor throws an error if the phone number is empty + @Test(expectedExceptions = IllegalArgumentException.class) + public void constructorShouldThrowExceptionWhenPhoneNumberIsEmpty() { + + // This should fail because the phone number is empty + new Worker("Mike", "M", 40, "Mike@gmail.com", + 54321, ""); + } + + // This test checks that the setter method also throws an error + // if someone tries to set the phone number to an empty value + @Test(expectedExceptions = IllegalArgumentException.class) + public void setterShouldThrowExceptionWhenPhoneNumberIsEmpty() { + + // First create a Worker with a valid phone number + Worker worker = new Worker("Mike", "M", 40, "Mike@gmail.com", + 54321, "111-111-1111"); + + // This should throw an IllegalArgumentException + worker.setPhoneNumber(""); + } + +} \ No newline at end of file diff --git a/src/test/java/object/example/WorkerTest.java b/src/test/java/object/example/WorkerTest.java new file mode 100644 index 0000000..75c12b4 --- /dev/null +++ b/src/test/java/object/example/WorkerTest.java @@ -0,0 +1,96 @@ +package object.example; + +//compares expected vs actual values +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertTrue; + +// creates tests +import jamesbarclay.Worker; +import org.testng.annotations.Test; + +public class WorkerTest { + + // This test checks if the constructor correctly creates a Worker object + @Test + public void constructorShouldCreateWorkerWithValidData() { + + // Create a new Worker object using the constructor + Worker worker = new Worker("James", "Barclay", 34, "JB@gmail.com", + 12345, "302-555-5555"); + + // Check if values were passed into the constructor correctly + assertEquals("James", worker.getFirstName()); + assertEquals("Barclay", worker.getLastName()); + assertEquals(34, worker.getAge()); + assertEquals(12345, worker.getIdNumber()); + assertEquals("JB@gmail.com", worker.getEmail()); + assertEquals("302-555-5555", worker.getPhoneNumber()); + } + + // This test checks that the setter methods to be able to update the Worker values + @Test + public void settersShouldUpdateValues() { + + // Create a Worker object with starting values + Worker worker = new Worker("Mike", "M", 40, "Mike@gmail.com", + 54321, "222-222-2222"); + + // Use setter methods to change the values + worker.setFirstName("J"); + worker.setLastName("B"); + worker.setAge(50); + worker.setEmail("jbs@gmail.com"); + worker.setIdNumber(11111); + worker.setPhoneNumber("333-333-3333"); + + // Verify that the values were updated + assertEquals("J", worker.getFirstName()); + assertEquals("B", worker.getLastName()); + assertEquals(50, worker.getAge()); + assertEquals("jbs@gmail.com", worker.getEmail()); + assertEquals(11111, worker.getIdNumber()); + assertEquals("333-333-3333", worker.getPhoneNumber()); + } + // Test custom method getFullName() + @Test + public void getFullNameShouldReturnFullName() { + + Worker worker = new Worker("James", "Barclay", 34, + "jb@gmail.com", 12345, "302-555-5555"); + + assertEquals("James Barclay", worker.getFullName()); + } + + // Test custom method isAdult() + @Test + public void isAdultShouldReturnTrueForAdult() { + + Worker worker = new Worker("James", "Barclay", 34, + "jb@gmail.com", 12345, "302-555-5555"); + + assertTrue(worker.isAdult()); + } + + // This test checks that the constructor throws an error if the phone number is empty + @Test(expectedExceptions = IllegalArgumentException.class) + public void constructorShouldThrowExceptionWhenPhoneNumberIsEmpty() { + + // This should fail because the phone number is empty + new Worker("Mike", "M", 40, "Mike@gmail.com", + 54321, ""); + } + + // This test checks that the setter method also throws an error + // if someone tries to set the phone number to an empty value + @Test(expectedExceptions = IllegalArgumentException.class) + public void setterShouldThrowExceptionWhenPhoneNumberIsEmpty() { + + // First create a Worker with a valid phone number + Worker worker = new Worker("Mike", "M", 40, "Mike@gmail.com", + 54321, "111-111-1111"); + + // This should throw an IllegalArgumentException + worker.setPhoneNumber(""); + } + +} \ No newline at end of file