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 }
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); }
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(); }
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); }