コード例 #1
0
        public void WhenAddTrait_AndNullDependencyResolver_ShouldAdd()
        {
            // Arrange
            var container  = new UnityContainer();
            var parent     = new StubObservableObject();
            var collection = new ViewModelTraitCollection(parent, new NullTraitDependencyResolver());

            // Act
            var b = collection.Add <StubViewModelTrait>();

            // Assert
            Assert.That(b, Is.Null);
            Assert.That(collection.Contains <StubViewModelTrait>(), Is.False);
        }
コード例 #2
0
        public void WhenDisposingTrait_ShouldDisposeChildren()
        {
            // Arrange
            var vm                = new StubObservableObject();
            var trait             = new StubViewModelTrait(vm);
            var aDisposableObject = new StubDisposable();

            aDisposableObject.DisposeWith(trait);

            trait.Dispose();

            Assert.That(trait.IsDisposed, Is.True, "Trait");
            Assert.That(aDisposableObject.IsDisposed, Is.True, "Child");
        }
コード例 #3
0
        public void WhenAddTraitShouldAdd()
        {
            // Arrange
            var container  = new UnityContainer();
            var parent     = new StubObservableObject();
            var collection = new ViewModelTraitCollection(parent, new TraitDependencyResolver(container));

            // Act
            var b = collection.Add <StubViewModelTrait>();

            // Assert
            Assert.That(b, Is.Not.Null);
            Assert.That(collection.Contains <StubViewModelTrait>(), Is.True);
            Assert.That(b.Target, Is.EqualTo(parent));
        }
コード例 #4
0
        public void WhenDisposingParentShouldDispose()
        {
            // Arrange
            var container  = new UnityContainer();
            var parent     = new StubObservableObject();
            var collection = new ViewModelTraitCollection(parent, new TraitDependencyResolver(container));
            var child      = new StubDisposable();

            // Act
            var b0 = collection.Add <StubViewModelTrait>();

            child.DisposeWith(b0);
            parent.Dispose();

            // Assert
            Assert.That(parent.IsDisposed, Is.True);
            Assert.That(b0.IsDisposed, Is.True);
            Assert.That(child.IsDisposed, Is.True);
        }
コード例 #5
0
        public void WhenAddTraitTwiceShouldReplace()
        {
            // Arrange
            var container  = new UnityContainer();
            var parent     = new StubObservableObject();
            var collection = new ViewModelTraitCollection(parent, new TraitDependencyResolver(container));

            // Act
            var b0 = collection.Add <StubViewModelTrait>();

            b0.Id = "b0";
            var b1 = collection.Add <StubViewModelTrait>();

            b1.Id = "b1";

            // Assert
            Assert.That(b0, Is.Not.Null);
            Assert.That(b1, Is.Not.Null);
            Assert.That(collection.Contains <StubViewModelTrait>(), Is.True);
            Assert.That(b0.IsDisposed, Is.True);
            Assert.That(b1.IsDisposed, Is.False);
            Assert.That(b1.Target, Is.EqualTo(parent));
        }