Ewan
Ewan

Reputation: 581

What is the NSubstitute equivalent of Rhino Mocks Is.Anything

I have a load of tests written by another developer in Rhino Mocks. We now use NSubstitute though so I am re-writting the tests in NSubstitute. I have re-written eveything except the Is.Anything. What is the NSubstitute way of writting the Is.Anything in the below example? I have shown the Rhino Mocks first and the NSubstitute examle second.

Rhino Mocks:

using Rhino.Mocks;

namespace ClassUnderTest.Tests
{
    class TestExample_NSubstitute_Tests
    {
        private const int ClassUnderTestLicenseFeatureID = 5106;
        private IMessenger messageProvider;
        private IEventAggregator eventAggregator;

        private ClassUnderTest BuildValidClassUnderTestObject()
        {
            ClassUnderTest newClassUnderTest = new ClassUnderTest(
                    eventAggregator,
                    messageProvider);
            return newClassUnderTest;
        }

        [TestMethod]
        public void ClassUnderTestBroadcastInstrumentState_NoArgs_BaseClassMethodCall()
        {
            //ARRANGE
            ClassUnderTest classUnderTest = BuildValidClassUnderTestObject();

            //ACT
            classUnderTest.BroadcastState();

            //ASSERT
            messageProvider.AssertWasCalled(a => a.ClassToDoWork(
                Arg<OrchestrationInstrumentRuntimeServiceModel>.Is.Anything, 
                Arg<long>.Is.Anything));
            Assert.IsNotNull(classUnderTest);
        }
    }
}

NSubstitute Example:

using NSubstitute;

namespace ClassUnderTest.Tests
{
    class TestExample_NSubstitute_Tests
    {
        private const int ClassUnderTestLicenseFeatureID = 5106;
        private IMessenger messageProvider;
        private IEventAggregator eventAggregator;

        private ClassUnderTest BuildValidClassUnderTestObject()
        {
            ClassUnderTest newClassUnderTest = new ClassUnderTest(
                    eventAggregator,
                    messageProvider);
            return newClassUnderTest;
        }

        [TestMethod]
        public void ClassUnderTestBroadcastInstrumentState_NoArgs_BaseClassMethodCall()
        {
            //ARRANGE
            ClassUnderTest classUnderTest = BuildValidClassUnderTestObject();

            //ACT
            classUnderTest.BroadcastState();

            //ASSERT
            messageProvider.Received().ClassToDoWork(
                Arg<OrchestrationInstrumentRuntimeServiceModel>.Is.Anything,//How do I re-write Is.Anything in NSubstitute?
                Arg<long>.Is.Anything);//How do I re-write Is.Anything in NSubstitute?
            Assert.IsNotNull(classUnderTest);
        }
    }
}

Upvotes: 1

Views: 362

Answers (1)

Ewan
Ewan

Reputation: 581

I found the answer myself...

using NSubstitute;

namespace ClassUnderTest.Tests { class TestExample_NSubstitute_Tests { private const int ClassUnderTestLicenseFeatureID = 5106; private IMessenger messageProvider; private IEventAggregator eventAggregator;

    private ClassUnderTest BuildValidClassUnderTestObject()
    {
        ClassUnderTest newClassUnderTest = new ClassUnderTest(
                eventAggregator,
                messageProvider);
        return newClassUnderTest;
    }

    [TestMethod]
    public void ClassUnderTestBroadcastInstrumentState_NoArgs_BaseClassMethodCall()
    {
        //ARRANGE
        ClassUnderTest classUnderTest = BuildValidClassUnderTestObject();

        //ACT
        classUnderTest.BroadcastState();

        //ASSERT
        messageProvider.Received().ClassToDoWork(
            Arg.Any<OrchestrationInstrumentRuntimeServiceModel>(),
            Arg.Any<long>();
        Assert.IsNotNull(classUnderTest);
    }
}

}

Upvotes: 1

Related Questions