public void Ensure_that_you_cannot_pick_up_an_item_more_than_once() { Avatar avatar = new Avatar(); Fork fork = new Fork(); avatar.PickUp(fork); avatar.PickUp(fork); }
public void Ensure_that_you_cannot_wash_things_if_you_are_holding_non_washable_stuff() { Avatar avatar = new Avatar(); BagOfHolding bag = new BagOfHolding(); Fork fork = new Fork(); avatar.PickUp(bag); avatar.PickUp(fork); avatar.StartWashing(); }
public void Eating_raw_bacon_is_bad_for_you() { Avatar avatar = new Avatar(); BaconSlab bacon = new BaconSlab(); Fork fork = new Fork(); Knife knife = new Knife(); avatar.PickUp(fork); avatar.PickUp(knife); avatar.Eat(bacon).With(fork, knife); }
public void Ensure_that_you_can_eat_ice_cream_with_a_spoon_and_doing_so_makes_it_dirty() { Avatar avatar = new Avatar(); IceCream iceCream = new IceCream(); avatar.PickUp(iceCream); Spoon spoon = new Spoon(); avatar.PickUp(spoon); avatar.Eat(iceCream).With(spoon); Assert.AreEqual(DirtRating.Smudged, spoon.DirtRating); Assert.AreEqual(80m, spoon.PercentClean); }
public void Ensure_that_properly_eating_ice_cream_causes_it_to_disappear_into_limbo() { Avatar avatar = new Avatar(); IceCream iceCream = new IceCream(); avatar.PickUp(iceCream); Assert.AreSame(avatar, iceCream.ParentContainerObject); Assert.IsTrue(avatar.Contents.Any(x => x.ObjectId == iceCream.ObjectId)); Spoon spoon = new Spoon(); avatar.PickUp(spoon); avatar.Eat(iceCream).With(spoon); Assert.IsNull(iceCream.ParentContainerObject); Assert.IsFalse(avatar.Contents.Any(x => x.ObjectId == iceCream.ObjectId)); }
public void Ensure_that_you_cannot_eat_ice_cream_with_a_fork() { Avatar avatar = new Avatar(); IceCream iceCream = new IceCream(); Fork fork = new Fork(); avatar.PickUp(fork); avatar.Eat(iceCream).With(fork); }
public void Ensure_that_you_cannot_eat_ice_cream_with_a_knife() { Avatar avatar = new Avatar(); IceCream iceCream = new IceCream(); Knife knife = new Knife(); avatar.PickUp(knife); avatar.Eat(iceCream).With(knife); }
public void Ensure_that_properly_eating_bacon_causes_it_to_disappear_into_limbo() { Avatar avatar = new Avatar(); BaconSlab bacon = new BaconSlab(); avatar.PickUp(bacon); Assert.AreSame(avatar, bacon.ParentContainerObject); Assert.IsTrue(avatar.Contents.Any(x => x.ObjectId == bacon.ObjectId)); Fork fork = new Fork(); Knife knife = new Knife(); avatar.PickUp(fork); avatar.PickUp(knife); bacon.Cook(); avatar.Eat(bacon).With(fork, knife); Assert.IsNull(bacon.ParentContainerObject); Assert.IsFalse(avatar.Contents.Any(x => x.ObjectId == bacon.ObjectId)); }
public void Cannot_pick_up_an_item_while_it_is_locked_in_the_dishwasher() { Dishwasher washer = new Dishwasher(); Spoon spoon = new Spoon(); washer.Load(spoon); washer.Lock(); Avatar avatar = new Avatar(); avatar.PickUp(spoon); }
public void Contents_of_an_emptied_dishwasher_are_always_clean() { var fork = new Fork(); var spoon = new Spoon(); var glass = new Glass(); Avatar avatar = new Avatar(); avatar.PickUp(fork); avatar.PickUp(spoon); avatar.PickUp(glass); Dishwasher washer = new Dishwasher(); washer.Load(fork); washer.Load(spoon); washer.Load(glass); washer.TakeEverythingOut(); Assert.IsTrue(washer.ContentsAreClean()); }
public void Ensure_that_you_cannot_eat_bacon_with_a_spoon() { Avatar avatar = new Avatar(); BaconSlab bacon = new BaconSlab(); Spoon spoon = new Spoon(); bacon.Cook(); avatar.PickUp(spoon); avatar.Eat(bacon).With(spoon); }
public void Ensure_that_the_beer_tap_does_not_dispense_beer_if_there_is_none_left() { Avatar avatar = new Avatar(); Glass glass = new Glass(); avatar.PickUp(glass); Fridge fridge = new Fridge(); fridge.BeerRemaining = 0; avatar.DispenseBeerFrom(fridge).Into(glass); }
public void Ensure_that_moving_items_properly_transfers_them() { Avatar avatar = new Avatar(); BarOfSoap barOfSoap = new BarOfSoap(); avatar.PickUp(barOfSoap); House house = new House(); avatar.Put(barOfSoap).In(house); Assert.AreSame(house, barOfSoap.ParentContainerObject); Assert.IsFalse(avatar.Contents.Any(x => x.ObjectId == barOfSoap.ObjectId)); Assert.IsTrue(house.Contents.Any(x => x.ObjectId == barOfSoap.ObjectId)); }
public void Ensure_that_the_beer_tap_dispenses_beer_fills_containers_and_makes_containers_dirtier() { Avatar avatar = new Avatar(); Glass glass = new Glass(); avatar.PickUp(glass); FineChinaTeacup teacup = new FineChinaTeacup(); avatar.PickUp(teacup); Fridge fridge = new Fridge(); avatar.DispenseBeerFrom(fridge).Into(glass); avatar.DispenseBeerFrom(fridge).Into(teacup); Assert.IsTrue(glass.IsFull); Assert.AreEqual(80m, glass.PercentClean); Assert.AreEqual(DirtRating.Smudged, glass.DirtRating); Assert.IsTrue(teacup.IsFull); Assert.AreEqual(80m, teacup.PercentClean); Assert.AreEqual(DirtRating.Smudged, teacup.DirtRating); Assert.AreEqual(425, fridge.BeerRemaining); }
public void Ensure_that_if_there_is_only_a_little_bit_of_beer_left_the_container_will_not_be_totally_full() { Avatar avatar = new Avatar(); Glass glass = new Glass(); avatar.PickUp(glass); Fridge fridge = new Fridge(); fridge.BeerRemaining = 2; avatar.DispenseBeerFrom(fridge).Into(glass); Assert.IsFalse(glass.IsEmpty); Assert.IsFalse(glass.IsFull); Assert.AreEqual(48, glass.RemainingCapacity); Assert.AreEqual(0, fridge.BeerRemaining); }
public void Ensure_that_cooking_ice_cream_causes_it_to_burn_away_into_limbo() { Avatar avatar = new Avatar(); IceCream iceCream = new IceCream(); avatar.PickUp(iceCream); Assert.AreSame(avatar, iceCream.ParentContainerObject); Assert.IsTrue(avatar.Contents.Any(x => x.ObjectId == iceCream.ObjectId)); bool exceptionHandled = false; try { iceCream.Cook(); } catch (Exception e) { exceptionHandled = true; Assert.IsInstanceOfType(e, typeof(InappropriateBehaviorException)); } Assert.IsTrue(exceptionHandled); Assert.IsNull(iceCream.ParentContainerObject); Assert.IsFalse(avatar.Contents.Any(x => x.ObjectId == iceCream.ObjectId)); }
public void Ensure_that_cooking_bacon_more_than_once_causes_it_to_burn_away_into_limbo() { Avatar avatar = new Avatar(); BaconSlab bacon = new BaconSlab(); avatar.PickUp(bacon); Assert.AreSame(avatar, bacon.ParentContainerObject); Assert.IsTrue(avatar.Contents.Any(x => x.ObjectId == bacon.ObjectId)); bool exceptionHandled = false; try { bacon.Cook(); bacon.Cook(); } catch (Exception e) { exceptionHandled = true; Assert.IsInstanceOfType(e, typeof(InappropriateBehaviorException)); } Assert.IsTrue(exceptionHandled); Assert.IsNull(bacon.ParentContainerObject); Assert.IsFalse(avatar.Contents.Any(x => x.ObjectId == bacon.ObjectId)); }
public void Ensure_that_you_cannot_pick_up_more_than_you_can_carry() { Avatar avatar = new Avatar(); avatar.PickUp(new Elephant()); }
public void Ensure_that_you_can_always_fill_a_partially_full_container() { Avatar avatar = new Avatar(); Glass glass = new Glass(); avatar.PickUp(glass); Fridge fridge1 = new Fridge(); fridge1.BeerRemaining = 2; avatar.DispenseBeerFrom(fridge1).Into(glass); Assert.AreEqual(0, fridge1.BeerRemaining); Fridge fridge2 = new Fridge(); avatar.DispenseBeerFrom(fridge2).Into(glass); Assert.AreEqual(452, fridge2.BeerRemaining); Assert.IsFalse(glass.IsEmpty); Assert.IsTrue(glass.IsFull); }
public void Ensure_that_you_can_wash_multiple_items_at_once() { bool dirtRatingImprovedEventHandled = false; bool allItemsCleanEventHandled = false; Avatar avatar = new Avatar(); avatar.NotifyWhenDirtRatingImproves += (sender, args) => { dirtRatingImprovedEventHandled = true; }; avatar.NotifyWhenItemsAreTotallyClean += (sender, args) => { allItemsCleanEventHandled = true; }; Fork fork1 = new Fork {PercentClean = 0}; Fork fork2 = new Fork {PercentClean = 0}; Fork fork3 = new Fork {PercentClean = 0}; avatar.PickUp(fork1); avatar.PickUp(fork2); avatar.PickUp(fork3); avatar.StartWashing(); Assert.IsTrue(dirtRatingImprovedEventHandled); Assert.IsTrue(allItemsCleanEventHandled); }
public void Ensure_that_you_can_eat_bacon_with_a_knife_and_fork_and_doing_so_makes_them_dirty() { Avatar avatar = new Avatar(); BaconSlab bacon = new BaconSlab(); avatar.PickUp(bacon); Assert.AreSame(avatar, bacon.ParentContainerObject); Assert.IsTrue(avatar.Contents.Any(x => x.ObjectId == bacon.ObjectId)); Fork fork = new Fork(); Knife knife = new Knife(); avatar.PickUp(fork); avatar.PickUp(knife); Assert.AreEqual(DirtRating.SqueakyClean, fork.DirtRating); Assert.AreEqual(100m, fork.PercentClean); Assert.AreEqual(DirtRating.SqueakyClean, knife.DirtRating); Assert.AreEqual(100m, knife.PercentClean); bacon.Cook(); avatar.Eat(bacon).With(fork, knife); Assert.AreEqual(DirtRating.Smudged, fork.DirtRating); Assert.AreEqual(80m, fork.PercentClean); Assert.AreEqual(DirtRating.Smudged, knife.DirtRating); Assert.AreEqual(80m, knife.PercentClean); }
public void Ensure_that_containers_loaded_into_the_dishwasher_are_empty_first() { Avatar avatar = new Avatar(); BaconSlab bacon = new BaconSlab(); avatar.PickUp(bacon); Dishwasher washer = new Dishwasher(); Plate plate = new Plate(); avatar.Put(bacon).In(plate); washer.Load(plate); }
public void Ensure_that_you_cannot_fill_a_plate_with_beer() { Avatar avatar = new Avatar(); Plate plate = new Plate(); avatar.PickUp(plate); Fridge fridge = new Fridge(); avatar.DispenseBeerFrom(fridge).Into(plate); }
public void Ensure_that_you_cannot_dispense_a_beverage_into_a_container_that_is_full() { Avatar avatar = new Avatar(); Glass glass = new Glass(); avatar.PickUp(glass); Fridge fridge = new Fridge(); avatar.DispenseBeerFrom(fridge).Into(glass); avatar.DispenseBeerFrom(fridge).Into(glass); }
public void Ensure_that_you_cannot_fill_a_bag_of_holding_with_beer() { Avatar avatar = new Avatar(); BagOfHolding bag = new BagOfHolding(); avatar.PickUp(bag); Fridge fridge = new Fridge(); avatar.DispenseBeerFrom(fridge).Into(bag); }
public void Ensure_that_you_can_wash_items_without_specifying_wash_event_handlers() { Avatar avatar = new Avatar(); Fork fork1 = new Fork(); Fork fork2 = new Fork(); avatar.PickUp(fork1); avatar.PickUp(fork2); avatar.StartWashing(); }
public void Ensure_that_you_cannot_fill_a_frying_pan_with_beer() { Avatar avatar = new Avatar(); FryingPan pan = new FryingPan(); avatar.PickUp(pan); Fridge fridge = new Fridge(); avatar.DispenseBeerFrom(fridge).Into(pan); }