Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        public void NS5000_ReceivedCheck()
        {
            var substitute = Substitute.For <IFoo>();

            substitute.Received(1);
            SubstituteExtensions.Received(substitute, 1);
        }
Exemple #4
0
        private static IHubCallerConnectionContext <dynamic> CreateClientsContext()
        {
            var      clients = Substitute.For <IHubCallerConnectionContext <dynamic> >();
            ISignals signals = Substitute.For <ISignals>();

            SubstituteExtensions.Returns(clients.Group("sessionkey"), signals);
            return(clients);
        }
Exemple #5
0
 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>());
        }
Exemple #7
0
 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);
        }
Exemple #10
0
        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));
        }
Exemple #12
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        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);
        }
Exemple #18
0
        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);
            });
        }
Exemple #23
0
 public ConfiguredCall ReturnsForAnyArgs <T>(T returnThis, params T[] returnThese)
 {
     return(SubstituteExtensions.Returns(MatchArgs.Any, returnThis, returnThese));
 }
Exemple #24
0
 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)));
 }
Exemple #26
0
 /// <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)));
 }
Exemple #27
0
 private void GivenThereIsNoEventHandlerState()
 {
     SubstituteExtensions.Returns(
         _eventHandlerStateStore.Get(Arg.Any <string>()),
         (Func <NSubstitute.Core.CallInfo, Core.ReadModel.Projections.EventHandlerState.Projection>)(ps => throw new ProjectionNotFoundException()));
 }
Exemple #28
0
 public ConfiguredCall ReturnsForAnyArgs <T>(Func <CallInfo, T> returnThis, params Func <CallInfo, T>[] returnThese)
 {
     return(SubstituteExtensions.Returns(MatchArgs.Any, returnThis, returnThese));
 }