public void Bag_cannot_hold_same_bag_twice() { Bag container = new Bag("blue", "light"); Bag cargo = new Bag("red", "dark"); container.AddCargo(cargo, 1); Assert.Throws <ArgumentException>(() => container.AddCargo(cargo, 1)); }
public void Bag_reports_whether_another_bag_can_go_in_it() { Bag container = new Bag("blue", "light"); Bag cargo = new Bag("red", "dark"); container.AddCargo(cargo, 1); Assert.IsTrue(container.CanContain(new Bag("red", "dark"))); Assert.IsFalse(container.CanContain(new Bag("red", "light"))); }
public void Bag_reports_correct_transitive_content_count() { var cargo = new Bag("blue", "light"); var container1 = new Bag("red", "dark"); var container2 = new Bag("green", "forest"); var container3 = new Bag("yellow", "sunny"); container1.AddCargo(cargo, 2); container2.AddCargo(cargo, 2); container3.AddCargo(container1, 2); Assert.AreEqual(6, container3.GetTransitiveContentCount()); }
public void Bag_equality_comparison_works() { var b1 = new Bag("blue", "light"); var b2 = new Bag("blue", "dark"); var b3 = new Bag("red", "light"); var b4 = new Bag("blue", "light"); b1.AddCargo(b4, 1); Assert.AreEqual(b1, b4); Assert.IsTrue(b1.Equals(b4)); Assert.IsFalse(b1.Equals(b2)); Assert.IsFalse(b1.Equals(b3)); }