示例#1
0
        public static async Task BindModelAsync_NullOrWhiteSpaceModelName_UsesDefault(
            string modelName,
            Mock <IValueProvider> valueProviderMock,
            Mock <ModelBindingContext> contextMock,
            OrderModelBinder modelBinder)
        {
            contextMock.SetupAllProperties();
            contextMock.Setup(c => c.ModelName).Returns(modelName);
            contextMock.Setup(c => c.ValueProvider).Returns(valueProviderMock.Object);
            valueProviderMock.Setup(v => v.GetValue(It.IsAny <string>())).Returns(ValueProviderResult.None);

            await modelBinder.BindModelAsync(contextMock.Object);

            valueProviderMock.Verify(v => v.GetValue(It.Is <string>(s => s == OrderModelBinder.DefaultModelName)));
        }
示例#2
0
        public static async Task BindModelAsync_NoValue_ResultIsFailed(
            Mock <IValueProvider> valueProviderMock,
            Mock <ModelBindingContext> contextMock,
            OrderModelBinder modelBinder)
        {
            contextMock.SetupAllProperties();
            contextMock.Setup(c => c.ValueProvider).Returns(valueProviderMock.Object);
            valueProviderMock.Setup(v => v.GetValue(It.IsAny <string>())).Returns(ValueProviderResult.None);

            var context = contextMock.Object;

            await modelBinder.BindModelAsync(context);

            context.Result.Should().Be(ModelBindingResult.Failed());
        }
示例#3
0
        public static async Task BindModelAsync_InvalidCallOffId_AddsModelError(
            [Frozen] Mock <IValueProvider> valueProviderMock,
            Mock <ModelBindingContext> contextMock,
            OrderModelBinder modelBinder)
        {
            contextMock.SetupAllProperties();
            contextMock.Setup(c => c.ValueProvider).Returns(valueProviderMock.Object);
            valueProviderMock
            .Setup(v => v.GetValue(It.IsAny <string>()))
            .Returns(new ValueProviderResult(new StringValues("NotCallOffId")));

            var context = contextMock.Object;

            await modelBinder.BindModelAsync(context);

            context.ModelState.Should().HaveCount(1);
            context.ModelState.Keys.Should().Contain(OrderModelBinder.DefaultModelName);
        }
示例#4
0
        public static async Task BindModelAsync_ReturnsSuccessWithOrder(
            [Frozen] ApplicationDbContext dbContext,
            [Frozen] CallOffId callOffId,
            Order order,
            Mock <IValueProvider> valueProviderMock,
            Mock <ModelBindingContext> contextMock,
            OrderModelBinder modelBinder)
        {
            dbContext.Order.Add(order);
            await dbContext.SaveChangesAsync();

            contextMock.SetupAllProperties();
            contextMock.Setup(c => c.ValueProvider).Returns(valueProviderMock.Object);
            valueProviderMock
            .Setup(v => v.GetValue(It.IsAny <string>()))
            .Returns(new ValueProviderResult(new StringValues(callOffId.ToString())));

            var context = contextMock.Object;

            await modelBinder.BindModelAsync(context);

            context.Result.Should().Be(ModelBindingResult.Success(order));
        }