public void CancelingAnActionClosesAllChildObjectsThatAreNotCancelable()
        {
            // given
            var childObjectOne = Substitute.For <IOpenKitObject>();
            var childObjectTwo = Substitute.For <IOpenKitObject>();

            var target = CreateStubAction();
            IOpenKitComposite targetComposite = target;

            targetComposite.StoreChildInList(childObjectOne);
            targetComposite.StoreChildInList(childObjectTwo);

            // when
            target.CancelAction();

            // then
            childObjectOne.Received(1).Dispose();
            childObjectTwo.Received(1).Dispose();

#if NET35 || NET40
            // old NSubstitute does only print the class, nothing about instance
            mockLogger.Received(2).Warn(Arg.Is <string>(message => message.EndsWith("is not cancelable - falling back to Dispose() instead")));
#else
            mockLogger.Received(1).Warn($"{childObjectOne} is not cancelable - falling back to Dispose() instead");
            mockLogger.Received(1).Warn($"{childObjectTwo} is not cancelable - falling back to Dispose() instead");
#endif
        }
Exemple #2
0
        public void OnChildClosedRemovesArgumentFromListOfChildren()
        {
            // given
            IOpenKitComposite target = CreateOpenKit().Build();

            var childObjectOne = Substitute.For <IOpenKitObject>();
            var childObjectTwo = Substitute.For <IOpenKitObject>();

            target.StoreChildInList(childObjectOne);
            target.StoreChildInList(childObjectTwo);

            // when
            target.OnChildClosed(childObjectOne);

            // then
            var childObjects = target.GetCopyOfChildObjects();

            Assert.That(childObjects.Count, Is.EqualTo(1));
            Assert.That(childObjects[0], Is.SameAs(childObjectTwo));

            // when
            target.OnChildClosed(childObjectTwo);

            // then
            Assert.That(target.GetCopyOfChildObjects(), Is.Empty);
        }
Exemple #3
0
        public void CallingShutdownASecondTimeReturnsImmediately()
        {
            // given
            var target = CreateOpenKit().Build();
            IOpenKitComposite targetComposite = target;

            var childObjectOne = Substitute.For <IOpenKitObject>();
            var childObjectTwo = Substitute.For <IOpenKitObject>();

            targetComposite.StoreChildInList(childObjectOne);
            targetComposite.StoreChildInList(childObjectTwo);

            // when
            target.Shutdown();

            // then
            mockBeaconCacheEvictor.Received(1).Stop();
            mockBeaconSender.Received(1).Shutdown();
            childObjectOne.Received(1).Dispose();
            childObjectTwo.Received(1).Dispose();

            mockBeaconCacheEvictor.ClearReceivedCalls();
            mockBeaconSender.ClearReceivedCalls();
            childObjectOne.ClearReceivedCalls();
            childObjectTwo.ClearReceivedCalls();

            // and when
            target.Shutdown();

            // then
            Assert.That(mockBeaconCacheEvictor.ReceivedCalls(), Is.Empty);
            Assert.That(mockBeaconSender.ReceivedCalls(), Is.Empty);
            Assert.That(childObjectOne.ReceivedCalls(), Is.Empty);
            Assert.That(childObjectTwo.ReceivedCalls(), Is.Empty);
        }
        public void LeavingAnActionClosesAllChildObjects()
        {
            // given
            var childObjectOne = Substitute.For <IOpenKitObject>();
            var childObjectTwo = Substitute.For <IOpenKitObject>();

            var target = CreateStubAction();
            IOpenKitComposite targetComposite = target;

            targetComposite.StoreChildInList(childObjectOne);
            targetComposite.StoreChildInList(childObjectTwo);

            // when
            target.LeaveAction();

            // then
            childObjectOne.Received(1).Dispose();
            childObjectTwo.Received(1).Dispose();
        }
        public void CancelingAnActionCancelsAllChildObjects()
        {
            // given
            var childObjectOne = Substitute.For <ICancelableOpenKitObject>();
            var childObjectTwo = Substitute.For <ICancelableOpenKitObject>();

            var target = CreateStubAction();
            IOpenKitComposite targetComposite = target;

            targetComposite.StoreChildInList(childObjectOne);
            targetComposite.StoreChildInList(childObjectTwo);

            // when
            target.CancelAction();

            // then
            childObjectOne.Received(1).Cancel();
            childObjectTwo.Received(1).Cancel();
        }
Exemple #6
0
        public void ShutdownDisposesAllChildObjects()
        {
            // given
            var target = CreateOpenKit().Build();
            IOpenKitComposite targetComposite = target;

            var childObjectOne = Substitute.For <IOpenKitObject>();
            var childObjectTwo = Substitute.For <IOpenKitObject>();

            targetComposite.StoreChildInList(childObjectOne);
            targetComposite.StoreChildInList(childObjectTwo);

            // when
            target.Shutdown();

            // then
            childObjectOne.Received(1).Dispose();
            childObjectTwo.Received(1).Dispose();
        }
        public void OnChildClosedRemovesChildFromList()
        {
            // given
            IOpenKitComposite target = CreateStubAction();
            var childObject          = Substitute.For <IOpenKitObject>();

            target.StoreChildInList(childObject);

            // when
            target.OnChildClosed(childObject);

            // then
            Assert.That(target.GetCopyOfChildObjects(), Is.Empty);
        }