public void NewClient_Execute_ReturnsNewClient(bool bindingExists)
        {
            // Arrange
            var factoryMock = Substitute.For <IApiHttpHandlerFactory>();
            var mappingMock = Substitute.For <IApiHttpRequestHandlerBindingMap>();

            var factory = new ApiHttpFactory(new HttpClient(), factoryMock, mappingMock);

            const int key = 1;
            IApiHttpRequestHandlerBinding keyBinding = null;

            if (bindingExists)
            {
                keyBinding = Substitute.For <IApiHttpRequestHandlerBinding>();
            }

            mappingMock.TryGet(key).Returns(keyBinding);

            // Act
            var client = factory.NewClient(key);

            // Assert
            Assert.NotNull(client);
            mappingMock.Received(1).TryGet(Arg.Any <object>());
            keyBinding?.Received(1).Build();
        }
Exemple #2
0
        public IApiHttpRequestHandlerBinding SetNextHandler(Type handlerType)
        {
            var binding = new ApiHttpRequestHandlerBinding(_factory, handlerType);

            Next = binding;
            return(binding);
        }
        public void AddRequestHandler_Execute_AddsHandlerToMap(bool bindingExists)
        {
            // Arrange
            var factoryMock = Substitute.For <IApiHttpHandlerFactory>();
            var mappingMock = Substitute.For <IApiHttpRequestHandlerBindingMap>();

            var factory = new ApiHttpFactory(new HttpClient(), factoryMock, mappingMock);

            IApiHttpRequestHandlerBinding keyBinding = Substitute.For <IApiHttpRequestHandlerBinding>();
            const int key = 1;

            if (bindingExists)
            {
                mappingMock.TryGet(key).Returns(keyBinding);
            }
            else
            {
                mappingMock.TryGet(key).Returns((IApiHttpRequestHandlerBinding)null);
                factoryMock.CreateHandlerBinding <ApiHttpRequestHandlerMock>().Returns(keyBinding);
            }

            // Act
            var binding = factory.AddRequestHandler <ApiHttpRequestHandlerMock>(key);

            // Assert
            Assert.NotNull(binding);
            Assert.Same(keyBinding, binding);

            mappingMock.Received(1).TryGet(Arg.Any <object>());
            factoryMock.Received(bindingExists ? 0 : 1).CreateHandlerBinding <ApiHttpRequestHandlerMock>();
        }