public void CanRemoveRoomFromHome() { int roomsReomovedCount = 0; Home home = new Home(); home.RoomRemoved += (sender, added, anotherRoom) => { roomsReomovedCount += 1; }; const string bedroomName = "bedroom"; const string livingroomName = "living room"; var room =home.CreateRoom(bedroomName); Assert.IsNotNull(room); home.GetRooms().First().CreateFurniture("table"); home.GetRooms().First().CreateFurniture("chair"); room = home.CreateRoom(livingroomName); Assert.IsNotNull(room); Assert.AreEqual(2, home.GetRooms().Count); Room livingRoom = home.GetRooms().Last(); Assert.AreEqual(0, livingRoom.GetFurnitures().Count); home.RemoveRoom(bedroomName, livingroomName); Assert.AreEqual(2, livingRoom.GetFurnitures().Count); Assert.AreEqual(1, home.GetRooms().Count); }
public void RemoveRoomShouldThrowNoRoomFoundExceptionIfWrongAnotherRoomNameIfThereAreSomeFurnitureInFirstRoom() { Home home = new Home(); var room = home.CreateRoom("room1"); Assert.IsNotNull(room); home.GetRooms().First().CreateFurniture("sofa"); home.RemoveRoom("room1", "room2"); }
public Home Clone() { var clonedHome = new Home(); foreach (Room room in Rooms) { clonedHome.Rooms.Add(room.Clone()); } return clonedHome; }
public void CanListingHome() { Home home = new Home(); Room room = home.CreateRoom("bedroom"); room.CreateFurniture("sofa"); room.CreateFurniture("chair"); var listing = home.Listing(); Assert.IsNotNull(listing); Assert.IsTrue(listing.Contains("bedroom")); Assert.IsTrue(listing.Contains("sofa")); Assert.IsTrue(listing.Contains("chair")); }
public void CanAddNewRoomToHome() { int roomsAddedCount = 0; Home home = new Home(); home.RoomAdded += (sender, h) => { roomsAddedCount += 1; }; Assert.AreEqual(0, home.GetRooms().Count); var room = home.CreateRoom("living room"); Assert.IsNotNull(room); Assert.AreEqual(1, roomsAddedCount--); Assert.AreEqual(1, home.GetRooms().Count); room =home.CreateRoom("bedroom"); Assert.IsNotNull(room); Assert.AreEqual(1, roomsAddedCount--); Assert.AreEqual(2, home.GetRooms().Count); }
public void RemoveRoomShouldThrowNoRoomFoundExceptionIfWrongRoomName() { Home home = new Home(); home.RemoveRoom("room1","room2"); }
private void Save(object sender, Home home) { if (_saver != null) _saver.Save(this); }
private void OnChanged(Home home) { HomeChangedEventHandler handler = Changed; if (handler != null) handler(this, home); }
private Home CreateNewHome(DateTime date) { Home result; Home home = GetClosestHomeState(date); if (home != null) { result = home.Clone(); } else { result = new Home(); } States.Add(date, result); result.Changed += (sender, h) => OnChanged(h); return result; }