Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>23</maven.compiler.source>
<maven.compiler.target>23</maven.compiler.target>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Expand All @@ -22,14 +22,17 @@
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.1.2</version>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<release>21</release>
</configuration>
</plugin>

<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
Expand Down
90 changes: 90 additions & 0 deletions src/main/java/object/coreyscott/GymMembership.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package object.coreyscott;

public class GymMembership {

private String memberName;
private String membershipId;
private String membershipType;
private boolean active;
private int monthsRemaining;

public GymMembership(String memberName, String membershipId,
String membershipType, boolean active, int monthsRemaining) {

setMemberName(memberName);
setMembershipId(membershipId);
setMembershipType(membershipType);
setActive(active);
setMonthsRemaining(monthsRemaining);
}

// getters
public String getMemberName() {
return memberName;
}

public String getMembershipId() {
return membershipId;
}

public String getMembershipType() {
return membershipType;
}

public boolean isActive() {
return active;
}

public int getMonthsRemaining() {
return monthsRemaining;
}

// setters
public void setMemberName(String memberName) {
if (memberName == null || memberName.isBlank()) {
throw new IllegalArgumentException("Name cannot be blank");
}
this.memberName = memberName;
}

public void setMembershipId(String membershipId) {
if (membershipId == null || membershipId.isBlank()) {
throw new IllegalArgumentException("Membership ID cannot be blank");
}
this.membershipId = membershipId;
}

public void setMembershipType(String membershipType) {
if (membershipType == null || membershipType.isBlank()) {
throw new IllegalArgumentException("Membership type cannot be blank");
}
this.membershipType = membershipType;
}

public void setActive(boolean active) {
this.active = active;
}

public void setMonthsRemaining(int monthsRemaining) {
if (monthsRemaining < 0) {
throw new IllegalArgumentException("Months cannot be negative");
}
this.monthsRemaining = monthsRemaining;
}

// custom method 1
public void cancelMembership() {
active = false;
}

// custom method 2
public void renewMembership(int months) {
if (months <= 0) {
throw new IllegalArgumentException("Renew months must be positive");
}

monthsRemaining += months;
active = true;
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package object.example;
package object.coreyscott;


public class Person {
Expand Down
99 changes: 99 additions & 0 deletions src/test/java/object/coreyscott/GymMembershipTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
package object.coreyscott;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class GymMembershipTest {


@Test
void constructorSetsFieldsCorrectly() {


GymMembership membership =
new GymMembership("Bruce Banner", "ID10311621", "Platinum", true, 6);

assertEquals("Bruce Banner", membership.getMemberName());
assertEquals("ID10311621", membership.getMembershipId());
assertEquals("Platinum", membership.getMembershipType());
//assertTrue(membership.isActive());
assertEquals(6, membership.getMonthsRemaining());
}

@Test
void constructorThrowsExceptionForInvalidName() {


assertThrows(IllegalArgumentException.class,
() -> new GymMembership("", "ID10311621", "Platinum", true, 6));
}

@Test
void setMemberNameUpdatesName() {

// Arrange
GymMembership membership =
new GymMembership("Bruce Banner", "ID10311621", "Platinum", true, 6);

// Act
membership.setMemberName("u");

// Assert
assertEquals("u", membership.getMemberName());
}

@Test
void setMonthsRemainingThrowsExceptionWhenNegative() {

// Arrange
GymMembership membership =
new GymMembership("Corey Scott", "ID10311621", "Platinum", true, 6);

// Act / Assert
assertThrows(IllegalArgumentException.class,
() -> membership.setMonthsRemaining(-1));
}

@Test
void cancelMembershipSetsActiveToFalse() {

// Arrange
GymMembership membership =
new GymMembership("Bruce Banner", "ID10311621", "Platinum", true, 6);

// Act
membership.cancelMembership();

// Assert
assertFalse(membership.isActive());
}

@Test
void renewMembershipAddsMonthsAndActivatesAccount() {

// Arrange
GymMembership membership =
new GymMembership("Bruce Banner", "ID10311621", "Platinum", false, 2);

// Act
membership.renewMembership(3);

// Assert
assertEquals(5, membership.getMonthsRemaining());
assertTrue(membership.isActive());
}

@Test
void renewMembershipThrowsExceptionWhenMonthsInvalid() {

// Arrange
GymMembership membership =
new GymMembership("Bruce Banner", "ID10311621", "Platinum", true, 6);

// Act / Assert
assertThrows(IllegalArgumentException.class,
() -> membership.renewMembership(0));
}
}


85 changes: 85 additions & 0 deletions src/test/java/object/coreyscott/PersonTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package object.coreyscott;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

class PersonTest {

@Test
void constructorSetsFieldsCorrectly() {
Person person = new Person("Corey", "Scott", 25,
"corey@email.com", "123-456-7890");

assertEquals("Corey", person.getFirstName());
assertEquals("Scott", person.getLastName());
assertEquals(25, person.getAge());
assertEquals("corey@email.com", person.getEmail());
assertEquals("123-456-7890", person.getPhoneNumber());
}

@Test
void constructorThrowsExceptionForNegativeAge() {
assertThrows(IllegalArgumentException.class, () ->
new Person("Corey", "Scott", -1,
"corey@email.com", "123-456-7890"));
}

@Test
void setAgeUpdatesCorrectly() {
Person person = new Person("Corey", "Scott", 20,
"corey@email.com", "123-456-7890");

person.setAge(30);

assertEquals(30, person.getAge());
}

@Test
void setAgeThrowsExceptionForNegativeAge() {
Person person = new Person("Corey", "Scott", 20,
"corey@email.com", "123-456-7890");

assertThrows(IllegalArgumentException.class, () -> person.setAge(-5));
}

@Test
void settersUpdateFieldsCorrectly() {
Person person = new Person("Corey", "Scott", 25,
"corey@email.com", "123-456-7890");

person.setFirstName("John");
person.setLastName("Doe");
person.setEmail("john@email.com");
person.setPhoneNumber("999-999-9999");

assertEquals("John", person.getFirstName());
assertEquals("Doe", person.getLastName());
assertEquals("john@email.com", person.getEmail());
assertEquals("999-999-9999", person.getPhoneNumber());
}

@Test
void getFullNameReturnsCorrectFormat() {
Person person = new Person("Corey", "Scott", 25,
"corey@email.com", "123-456-7890");

assertEquals("Corey Scott", person.getFullName());
}

@Test
void isAdultReturnsTrueWhen18OrOlder() {
Person person = new Person("Corey", "Scott", 18,
"corey@email.com", "123-456-7890");

assertTrue(person.isAdult());
}

@Test
void isAdultReturnsFalseWhenUnder18() {
Person person = new Person("Corey", "Scott", 17,
"corey@email.com", "123-456-7890");

assertFalse(person.isAdult());
}
}
Loading