public void ChangeState() { //GIVEN a bg in a pending state var ticket = new Ticket { id = 4, state = "pending" }; db.Single <Ticket>(Arg.Any <string>(), 4).Returns(ticket); //GIVEN a signalR client proxy //after http://stackoverflow.com/a/16008194/76859 var clientProxy = Substitute.For <IClientProxy>(); SubstituteExtensions.Returns(hubContext.Clients.All, clientProxy); //WHEN sut is asked to change the status to "done" sut.ChangeState(new Ticket { id = 4, state = "done" }); //THEN the original item should get updated db.Received().Update("tickets", "id", ticket); ticket.state.ShouldBe("done"); //and the clients should get notified clientProxy.Received().updated(ticket); }
public void NS1002_NonVirtualSetupSpecification() { var substitute = Substitute.For <Foo>(); substitute.When(sub => sub.ObjectReturningMethod()); substitute.When(sub => { _ = sub.IntReturningProperty; }); substitute.When(sub => { _ = sub[0]; }); substitute.When(WhenDelegate); SubstituteExtensions.When(substitute, sub => sub.ObjectReturningMethod()); SubstituteExtensions.When(substitute, sub => { _ = sub.IntReturningProperty; }); SubstituteExtensions.When(substitute, sub => { _ = sub[0]; }); SubstituteExtensions.When(substitute, WhenDelegate); }
public void NS5000_ReceivedCheck() { var substitute = Substitute.For <IFoo>(); substitute.Received(1); SubstituteExtensions.Received(substitute, 1); }
private static IHubCallerConnectionContext <dynamic> CreateClientsContext() { var clients = Substitute.For <IHubCallerConnectionContext <dynamic> >(); ISignals signals = Substitute.For <ISignals>(); SubstituteExtensions.Returns(clients.Group("sessionkey"), signals); return(clients); }
private void GivenMessageValidity(string errorMessage) { if (errorMessage != null) { SubstituteExtensions.When(_pegRequestValidator, x => x.ValidatePegRequest(Arg.Any <Message>())) .Do(x => throw new PegValidationException(errorMessage)); } }
public void NS3002_CouldNotFindArgumentOfTypeToThisCall() { var substitute = Substitute.For <IFoo>(); substitute.ObjectReturningMethod().Returns(callInfo => callInfo.Arg <object>()); SubstituteExtensions.Returns(substitute.ObjectReturningMethod(), callInfo => callInfo.Arg <object>()); }
public void SetUp() { _hubContext = Substitute.For <IHubContext>(); _connectionManager = Substitute.For <IConnectionManager>(); _connectionManager.GetHubContext <FooHub>().Returns(_hubContext); _mockClient = Substitute.For <IMockClient>(); SubstituteExtensions.Returns(_hubContext.Clients.All, _mockClient); }
/// <summary> /// Returns NSubstitute Received() /// </summary> /// <param name="have"></param> /// <typeparam name="T"></typeparam> public static T Received <T>(this IHave <T> have) where T : class { var actual = have.GetActual(); var context = actual.GetMetadata <IExpectationContext>(Expectations.METADATA_KEY); return(context.IsNegated() ? SubstituteExtensions.DidNotReceive(actual) : SubstituteExtensions.Received(actual)); }
public void NS3005_CouldNotSetArgumentAsItIsNotRefOrOutArgument() { var substitute = Substitute.For <IFoo>(); substitute.ObjectReturningMethodWithArguments(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <decimal>()) .Returns(callInfo => callInfo[0] = 1); SubstituteExtensions.Returns( substitute.ObjectReturningMethodWithArguments(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <decimal>()), callInfo => callInfo[0] = 1); }
public void NS1001_NonVirtualSetupSpecification() { var substitute = Substitute.For <Foo>(); substitute.Received(1).ObjectReturningMethod(); _ = substitute.Received(1).IntReturningProperty; _ = substitute.Received(1)[0]; SubstituteExtensions.Received(substitute, 1).ObjectReturningMethod(); _ = SubstituteExtensions.Received(substitute, 1).IntReturningProperty; _ = SubstituteExtensions.Received(substitute, 1)[0]; }
/// <summary> /// Returns NSubstitute Received(count) /// </summary> /// <param name="have"></param> /// <param name="count"></param> /// <typeparam name="T"></typeparam> public static T Received <T>(this IHave <T> have, int count) where T : class { var actual = have.GetActual(); var context = actual.GetMetadata <IExpectationContext>(Expectations.METADATA_KEY); if (context.IsNegated()) { throw new NotSupportedException($"Negation of numbered Receive(N) expectations is not supported! (What would it mean, anyway?)"); } return(SubstituteExtensions.Received(have.GetActual(), count)); }
public void NS1003_InternalVirtualSetupSpecification() { var substitute = Substitute.For <Foo>(); substitute.InternalObjectReturningMethod().Returns((IFoo)null); substitute.InternalObjectReturningProperty.Returns((IFoo)null); substitute[0, 0, 0].Returns((IFoo)null); SubstituteExtensions.Returns(substitute.InternalObjectReturningMethod(), (IFoo)null); SubstituteExtensions.Returns(substitute.InternalObjectReturningProperty, (IFoo)null); SubstituteExtensions.Returns(substitute[0, 0, 0], (IFoo)null); }
public void NS3004_CouldNotSetValueOfTypeToArgumentBecauseTypesAreIncompatible() { var substitute = Substitute.For <IFoo>(); var anyInt = 1; var anyDecimal = 1m; substitute.ObjectReturningMethodWithRefArguments(ref anyInt, ref anyInt, ref anyDecimal) .Returns(callInfo => callInfo[0] = "invalid"); SubstituteExtensions.Returns( substitute.ObjectReturningMethodWithRefArguments(ref anyInt, ref anyInt, ref anyDecimal), callInfo => callInfo[0] = "invalid"); }
public void TestFilter() { Data data = Substitute.ForPartsOf <Data>(); SubstituteExtensions.Returns <List <dynamic> >(data.GetDynamic(Arg.Is("test")), new List <dynamic> { 1, 2, 3, 4 }); //data.GetDynamic(Arg.Is("test")).Returns(new List<dynamic> { 1,2,3,4}); data.GetDynamic("test"); var r = data.Filter("Rows.Where(r=>r % 2 == 0"); Assert.That(r.Count() == 2); }
public void NS1000_NonVirtualSetupSpecification() { var substitute = Substitute.For <Foo>(); substitute.ObjectReturningMethod().Returns((IFoo)null); substitute.IntReturningProperty.Returns(1); substitute[0].Returns(1); 1.Returns(1); SubstituteExtensions.Returns(substitute.ObjectReturningMethod(), (IFoo)null); SubstituteExtensions.Returns(substitute.IntReturningProperty, 1); SubstituteExtensions.Returns(substitute[0], 1); SubstituteExtensions.Returns(1, 1); }
public void NS5001_ReceivedLikeUsedInReceivedInOrderCallback() { var substitute = Substitute.For <Foo>(); Received.InOrder(() => { substitute.Received().ObjectReturningMethod(); _ = substitute.Received().InternalObjectReturningProperty; _ = substitute.Received()[0]; SubstituteExtensions.Received(substitute).ObjectReturningMethod(); _ = SubstituteExtensions.Received(substitute).InternalObjectReturningProperty; _ = SubstituteExtensions.Received(substitute)[0]; }); }
public void NS3006_ConflictingArgumentAssignments() { var substitute = Substitute.For <IFoo>(); var anyInt = 1; var anyDecimal = 1m; substitute.ObjectReturningMethodWithRefArguments(ref anyInt, ref anyInt, ref anyDecimal) .Returns(callInfo => callInfo[0] = 1) .AndDoes(callInfo => callInfo[0] = 2); SubstituteExtensions.Returns( substitute.ObjectReturningMethodWithRefArguments(ref anyInt, ref anyInt, ref anyDecimal), callInfo => callInfo[0] = 1) .AndDoes(callInfo => callInfo[0] = 2); }
protected override void ConfigureDependencies(TinyIoCContainer container) { _container = container; _container.Register <ICreateApplication, CreateApplicationFake>(); _container.Register <ICreateConfiguration, CreateConfigurationFake>(); _container.Register <ICreateFeature, CreateFeatureFake>(); _container.Register <ICreateFeatureOverride, CreateFeatureOverrideFake>(); _container.Register <ICreateResource, CreateResourceFake>(); var mockClient = Substitute.For <IMockClient>(); var connectionManager = container.Resolve <IConnectionManager>(); var hubContext = connectionManager.GetHubContext <LemonadeHub>(); SubstituteExtensions.Returns(hubContext.Clients.All, mockClient); _container.Register(mockClient); }
public void NS4000_ReEntrantSubstituteCall() { var substitute = Substitute.For <IFoo>(); substitute.CallInfoReturningMethod().Returns(Substitute.For <IFoo>().ObjectReturningMethod().Returns((IFoo)null)); substitute.ConfiguredCallReturningProperty.Returns(Substitute.For <IFoo>().ObjectReturningMethod().Returns((IFoo)null)); substitute[0, 0, 0, 0].Returns(Substitute.For <IFoo>().ObjectReturningMethod().Returns((IFoo)null)); substitute.CallInfoReturningMethod().Returns(ReEntrantReturn()); substitute.ConfiguredCallReturningProperty.Returns(ReEntrantReturn()); substitute[0, 0, 0, 0].Returns(ReEntrantReturn()); SubstituteExtensions.Returns(substitute.CallInfoReturningMethod(), Substitute.For <IFoo>().ObjectReturningMethod().Returns((IFoo)null)); SubstituteExtensions.Returns(substitute.ConfiguredCallReturningProperty, Substitute.For <IFoo>().ObjectReturningMethod().Returns((IFoo)null)); SubstituteExtensions.Returns(substitute[0, 0, 0, 0], Substitute.For <IFoo>().ObjectReturningMethod().Returns((IFoo)null)); SubstituteExtensions.Returns(substitute.CallInfoReturningMethod(), ReEntrantReturn()); SubstituteExtensions.Returns(substitute.ConfiguredCallReturningProperty, ReEntrantReturn()); SubstituteExtensions.Returns(substitute[0, 0, 0, 0], ReEntrantReturn()); }
public void NS3003_ThereIsMoreThanOneArgumentOfGivenTypeToThisCall() { var substitute = Substitute.For <IFoo>(); substitute.ObjectReturningMethodWithArguments(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <decimal>()) .Returns(callInfo => { callInfo.Arg <int>(); return(null); }); SubstituteExtensions.Returns( substitute.ObjectReturningMethodWithArguments(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <decimal>()), callInfo => { callInfo.Arg <int>(); return(null); }); }
public void NS3000_UnableToFindMatchingArgument() { var substitute = Substitute.For <IFoo>(); substitute.ObjectReturningMethodWithArguments(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <decimal>()) .Returns(callInfo => { callInfo.ArgAt <int>(10); return(null); }); SubstituteExtensions.Returns( substitute.ObjectReturningMethodWithArguments(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <decimal>()), callInfo => { callInfo.ArgAt <int>(10); return(null); }); }
public void NS3001_CouldNotConvertParameter() { var substitute = Substitute.For <IFoo>(); substitute.ObjectReturningMethodWithArguments(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <decimal>()) .Returns(callInfo => { _ = (decimal)callInfo[1]; _ = (decimal)callInfo.Args()[1]; callInfo.ArgAt <decimal>(1); return(null); }); SubstituteExtensions.Returns(substitute.ObjectReturningMethodWithArguments(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <decimal>()), callInfo => { _ = (decimal)callInfo[1]; _ = (decimal)callInfo.Args()[1]; callInfo.ArgAt <decimal>(1); return(null); }); }
public ConfiguredCall ReturnsForAnyArgs <T>(T returnThis, params T[] returnThese) { return(SubstituteExtensions.Returns(MatchArgs.Any, returnThis, returnThese)); }
public ConfiguredCall Returns <T>(Func <CallInfo, T> returnThis, params Func <CallInfo, T>[] returnThese) { return(SubstituteExtensions.Returns(MatchArgs.AsSpecifiedInCall, returnThis, returnThese)); }
/// <summary> /// Set null as returned value for this call made with any arguments. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value"></param> /// <returns></returns> public static ConfiguredCall ReturnsNullForAnyArgs <T>(this Task <T> value) where T : class { return(value.ReturnsForAnyArgs(i => SubstituteExtensions.CompletedTask <T>(null))); }
/// <summary> /// Set null as returned value for this call. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value"></param> /// <returns></returns> public static ConfiguredCall ReturnsNull <T>(this ValueTask <T> value) where T : class { return(value.Returns(i => SubstituteExtensions.CompletedValueTask <T>(null))); }
private void GivenThereIsNoEventHandlerState() { SubstituteExtensions.Returns( _eventHandlerStateStore.Get(Arg.Any <string>()), (Func <NSubstitute.Core.CallInfo, Core.ReadModel.Projections.EventHandlerState.Projection>)(ps => throw new ProjectionNotFoundException())); }
public ConfiguredCall ReturnsForAnyArgs <T>(Func <CallInfo, T> returnThis, params Func <CallInfo, T>[] returnThese) { return(SubstituteExtensions.Returns(MatchArgs.Any, returnThis, returnThese)); }