public void GetHierarchyDefensiveCopy(MegaCorp megaCorp, WageSlave wageSlave) { ISet <ICapitalist> children = new HashSet <ICapitalist>(); children.Add(wageSlave); IDictionary <FatCat, ISet <ICapitalist> > hierarchy = megaCorp.GetHierarchy(); hierarchy.Add(wageSlave.GetParent(), children); Assert.False(megaCorp.Has(wageSlave.GetParent()), "#getHierarchy() returned a live map that allowed external changes to the MegaCorp"); Assert.False(megaCorp.Has(wageSlave), "#getHierarchy() returned a live map that allowed external changes to the MegaCorp"); hierarchy = megaCorp.GetHierarchy(); Assert.False(children.SetEquals(hierarchy.ContainsKey(wageSlave.GetParent()) ? hierarchy[wageSlave.GetParent()] : new HashSet <ICapitalist>()), "#getHierarchy() returned a live map that allowed external changes to the MegaCorp"); Assert.False(hierarchy.ContainsKey(wageSlave.GetParent()), "#getHierarchy() returned a live map that allowed external changes to the MegaCorp"); megaCorp.Add(wageSlave.GetParent()); hierarchy = megaCorp.GetHierarchy(); children = hierarchy[wageSlave.GetParent()]; children.Add(wageSlave); Assert.False(megaCorp.Has(wageSlave), "#getHierarchy() returned a live map that allowed external changes to the MegaCorp"); hierarchy = megaCorp.GetHierarchy(); Assert.False(hierarchy[wageSlave.GetParent()].Contains(wageSlave), "#getHierarchy() returned a live map that allowed external changes to the MegaCorp"); }
public void FullConstructor(string name, int salary, FatCat parent) { WageSlave wageSlave = new WageSlave(name, salary, parent); Assert.Equal(name, wageSlave.GetName()); Assert.Equal(salary, wageSlave.GetSalary()); Assert.Equal(parent, wageSlave.GetParent()); Assert.True(wageSlave.HasParent(), "HasParent() did not return true when constructed with an owner"); }
public void NoOwnerConstructor(string name, int salary) { WageSlave wageSlave = new WageSlave(name, salary); Assert.Equal(name, wageSlave.GetName()); Assert.Equal(salary, wageSlave.GetSalary()); Assert.Null(wageSlave.GetParent()); Assert.False(wageSlave.HasParent(), "HasParent() did not return false when constructed without an owner"); }
public void GetParentsWageSlaveWithParent(MegaCorp megaCorp, WageSlave wageSlave) { megaCorp.Add(wageSlave); FatCat parent = wageSlave.GetParent(); ISet <FatCat> parents = megaCorp.GetParents(); Assert.NotEmpty(parents); Assert.Equal(1, parents.Count); Assert.True(parents.Contains(parent), "#getParents() returned a set that did not contain the parent of the WageSlave added to the MegaCorp"); }