Skip to content
Snippets Groups Projects
Commit be2c94b8 authored by joeappleton18's avatar joeappleton18
Browse files

completed task

parent 4bd43e72
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,7 @@ import java.util.List; ...@@ -6,6 +6,7 @@ import java.util.List;
public class House { public class House {
private List<Room> rooms = new ArrayList<Room>(); private List<Room> rooms = new ArrayList<Room>();
private boolean hasLounge = false;
public House() { public House() {
...@@ -16,7 +17,21 @@ public class House { ...@@ -16,7 +17,21 @@ public class House {
* *
* @param room * @param room
*/ */
public void addRoom(Room room) { public void addRoom(Room room) throws IllegalArgumentException{
if (room instanceof Lounge) {
if (hasLounge) {
throw new IllegalArgumentException("Error: Only one lounge allowed");
} else {
this.hasLounge = true;
}
}
this.rooms.add(room); this.rooms.add(room);
} }
...@@ -32,11 +47,11 @@ public class House { ...@@ -32,11 +47,11 @@ public class House {
public double getTotalArea() { public double getTotalArea() {
double total = 0.0; double total = 0.0;
for (Room room: this.rooms) { for (Room room : this.rooms) {
total += room.getArea(); total += room.getArea();
} }
return total; return total;
} }
} }
...@@ -11,7 +11,6 @@ public class HouseBuilder { ...@@ -11,7 +11,6 @@ public class HouseBuilder {
House house = new House(); House house = new House();
house.addRoom(lounge1); house.addRoom(lounge1);
house.addRoom(lounge2);
house.addRoom(diningRoom); house.addRoom(diningRoom);
System.out.println("House number of rooms: " + house.howManyRooms()); System.out.println("House number of rooms: " + house.howManyRooms());
......
...@@ -17,7 +17,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; ...@@ -17,7 +17,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
*/ */
class HouseTest { class HouseTest {
private House house; private House house;
@BeforeEach @BeforeEach
public void setUp() { public void setUp() {
...@@ -25,22 +26,40 @@ class HouseTest { ...@@ -25,22 +26,40 @@ class HouseTest {
/** Set up a particular kind of house */ /** Set up a particular kind of house */
Lounge lounge1 = new Lounge(10.0); Lounge lounge1 = new Lounge(10.0);
Lounge lounge2 = new Lounge(15.0);
DiningRoom dining1 = new DiningRoom(16.0); DiningRoom dining1 = new DiningRoom(16.0);
Bedroom bedroom = new Bedroom(10); Bedroom bedroom = new Bedroom(10.0);
house.addRoom(lounge1); house.addRoom(lounge1);
house.addRoom(lounge2);
house.addRoom(dining1); house.addRoom(dining1);
house.addRoom(bedroom); house.addRoom(bedroom);
} }
/***
* 2. A house may be associated with many rooms but there can only be one lounge
*/
@Test
public void testRequirement2() {
try {
Lounge l2 = new Lounge(12.0); // Attempting to add a second lounge
house.addRoom(l2);
// If the code reaches here without throwing an exception, you can fail the test
fail("Expected IllegalArgumentException, but it was not thrown.");
} catch (IllegalArgumentException exception) {
// Asserting that the exception's message contains the expected error message
assertTrue(exception.getMessage().contains("Error: Only one lounge allowed"));
}
}
/** /**
* 3. The house shall be able to display how many rooms it has. * 3. The house shall be able to display how many rooms it has.
*/ */
@Test @Test
void testRequirement3() { void testRequirement3() {
assertEquals(house.howManyRooms(), 4); assertEquals(house.howManyRooms(), 3);
} }
/** /**
...@@ -48,7 +67,7 @@ class HouseTest { ...@@ -48,7 +67,7 @@ class HouseTest {
*/; */;
@Test @Test
void testRequirement4() { void testRequirement4() {
assertEquals(house.getTotalArea(), 51.0); assertEquals(house.getTotalArea(), 36.0);
} }
@AfterEach @AfterEach
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment