Exemple #1
0
        public void ChangeOwnerOfPossession_ChangesReflectedInGetPossessionsOfOwner()
        {
            var possession = new TestPossession();

            var ownerOne = new TestOwner();
            var ownerTwo = new TestOwner();

            var relationship = new PossessionRelationship <TestOwner, TestPossession>();

            relationship.ChangeOwnerOfPossession(possession, ownerOne);

            CollectionAssert.Contains(relationship.GetPossessionsOfOwner(ownerOne), possession,
                                      "OwnerOne does not have the possession");

            relationship.ChangeOwnerOfPossession(possession, ownerTwo);

            CollectionAssert.DoesNotContain(relationship.GetPossessionsOfOwner(ownerOne), possession,
                                            "OwnerOne incorrectly has the possession");
            CollectionAssert.Contains(relationship.GetPossessionsOfOwner(ownerTwo), possession,
                                      "OwnerTwo does not have the possession");

            relationship.ChangeOwnerOfPossession(possession, null);
            CollectionAssert.DoesNotContain(relationship.GetPossessionsOfOwner(ownerTwo), possession,
                                            "OwnerTwo falsely has the possession");
        }
Exemple #2
0
        public void GetPossessionsOfOwner_ThrowsOnNullArgument()
        {
            var relationship = new PossessionRelationship <TestOwner, TestPossession>();

            Assert.Throws <ArgumentNullException>(() => relationship.GetPossessionsOfOwner(null),
                                                  "GetPossessionOfOwner did not throw correctly");
        }
Exemple #3
0
        public void ChangeOwnerOfPossession_ThrowsIfNotPermitted()
        {
            var possession = new TestPossession();

            var relationship = new PossessionRelationship <TestOwner, TestPossession>();

            Assert.Throws <InvalidOperationException>(() => relationship.ChangeOwnerOfPossession(possession, null),
                                                      "ChangeOwnerOfPossession did not throw correctly on an invalid request");
        }
Exemple #4
0
        public void AllMethods_ThrowOnNullPossessionArgument()
        {
            var owner = new TestOwner();

            var relationship = new PossessionRelationship <TestOwner, TestPossession>();

            Assert.Throws <ArgumentNullException>(() => relationship.GetOwnerOfPossession(null),
                                                  "GetOwnerOfPossession did not throw correctly");

            Assert.Throws <ArgumentNullException>(() => relationship.CanChangeOwnerOfPossession(null, owner),
                                                  "CanChangeOwnerOfPossession did not throw correctly");

            Assert.Throws <ArgumentNullException>(() => relationship.ChangeOwnerOfPossession(null, owner),
                                                  "ChangeOwnerOfPossession did not throw correctly");
        }
Exemple #5
0
        public void CanChangeOwnerOfPossession_FalseIfAlreadyOwnedBy()
        {
            var possession = new TestPossession();

            var owner = new TestOwner();

            var relationship = new PossessionRelationship <TestOwner, TestPossession>();

            Assert.IsFalse(relationship.CanChangeOwnerOfPossession(possession, null),
                           "CanChangeOwnerOfPossession returned an unexpected value");

            relationship.ChangeOwnerOfPossession(possession, owner);

            Assert.IsFalse(relationship.CanChangeOwnerOfPossession(possession, owner),
                           "CanChangeOwnerOfPossession returned an unexpected value");
        }
Exemple #6
0
        public void ChangeOwnerOfPossession_ChangesReflectedInGetOwnerOfPossession()
        {
            var possession = new TestPossession();

            var ownerOne = new TestOwner();
            var ownerTwo = new TestOwner();

            var relationship = new PossessionRelationship <TestOwner, TestPossession>();

            relationship.ChangeOwnerOfPossession(possession, ownerOne);

            Assert.AreEqual(ownerOne, relationship.GetOwnerOfPossession(possession),
                            "GetOwnerOfPossession returned an unexpected value");

            relationship.ChangeOwnerOfPossession(possession, ownerTwo);

            Assert.AreEqual(ownerTwo, relationship.GetOwnerOfPossession(possession),
                            "GetOwnerOfPossession returned an unexpected value");

            relationship.ChangeOwnerOfPossession(possession, null);
            Assert.AreEqual(null, relationship.GetOwnerOfPossession(possession),
                            "GetOwnerOfPossession returned an unexpected value");
        }