public async Task TryUpdateModelNonGeneric_PredicateOverload_ReturnsTrue_ModelBindsAndValidatesSuccessfully() { // Arrange var binders = new IModelBinder[] { new TypeConverterModelBinder(), new ComplexModelDtoModelBinder(), new MutableObjectModelBinder() }; var validator = new DataAnnotationsModelValidatorProvider(); var model = new MyModel { MyProperty = "Old-Value", IncludedProperty = "Old-IncludedPropertyValue", ExcludedProperty = "Old-ExcludedPropertyValue" }; var modelStateDictionary = new ModelStateDictionary(); var values = new Dictionary <string, object> { { "", null }, { "MyProperty", "MyPropertyValue" }, { "IncludedProperty", "IncludedPropertyValue" }, { "ExcludedProperty", "ExcludedPropertyValue" } }; Func <ModelBindingContext, string, bool> includePredicate = (context, propertyName) => string.Equals(propertyName, "IncludedProperty", StringComparison.OrdinalIgnoreCase) || string.Equals(propertyName, "MyProperty", StringComparison.OrdinalIgnoreCase); var valueProvider = new TestValueProvider(values); var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); // Act var result = await ModelBindingHelper.TryUpdateModelAsync( model, model.GetType(), "", Mock.Of <HttpContext>(), modelStateDictionary, metadataProvider, GetCompositeBinder(binders), valueProvider, new List <IInputFormatter>(), new DefaultObjectValidator( new IExcludeTypeValidationFilter[0], metadataProvider), validator, includePredicate); // Assert Assert.True(result); Assert.Equal("MyPropertyValue", model.MyProperty); Assert.Equal("IncludedPropertyValue", model.IncludedProperty); Assert.Equal("Old-ExcludedPropertyValue", model.ExcludedProperty); }
public async void CheckExcelFile_Bool_ShouldBeReturnFalse(DateTime datetimeUtc, int flag, bool expected) { // Arrange var fileService = new FileService(); var fileName = TestValueProvider.GetValueStringByFlag(flag); // Act var result = await fileService.CheckExcelFile(datetimeUtc, fileName); // Assert Assert.Equal(expected, result); }
public async void GetFromExcelFile_CountList_ShouldBeReturnListFromExcel(int fileNameFlag, int expected) { // Arange var fileName = TestValueProvider.GetValueStringByFlag(fileNameFlag); var courseScheduleFileService = new CourseScheduleFileService(_importDataExcelService); // Act var result = await courseScheduleFileService.GetFromExcelFile(fileName); // Assert Assert.Equal(result.Count, expected); }
public async void GetLastWriteTime_DateTime_ShouldBeReturnFalseLastAccessTimeUtc(int flag, DateTime expected) { // Arrange var fileService = new FileService(); var fileName = TestValueProvider.GetValueStringByFlag(flag); // Act var result = await fileService.GetLastWriteTime(fileName); // Assert Assert.NotEqual(expected.Date, result.Date); }
public async Task TryUpdateModel_UsingIncludeExpressionOverload_ReturnsTrue_ModelBindsAndValidatesSuccessfully() { // Arrange var binders = new IModelBinder[] { new TypeConverterModelBinder(), new ComplexModelDtoModelBinder(), new MutableObjectModelBinder() }; var validator = new DataAnnotationsModelValidatorProvider(); var model = new MyModel { MyProperty = "Old-Value", IncludedProperty = "Old-IncludedPropertyValue", ExcludedProperty = "Old-ExcludedPropertyValue" }; var modelStateDictionary = new ModelStateDictionary(); var values = new Dictionary <string, object> { { "", null }, { "MyProperty", "MyPropertyValue" }, { "IncludedProperty", "IncludedPropertyValue" }, { "ExcludedProperty", "ExcludedPropertyValue" } }; var valueProvider = new TestValueProvider(values); var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); // Act var result = await ModelBindingHelper.TryUpdateModelAsync( model, "", Mock.Of <HttpContext>(), modelStateDictionary, TestModelMetadataProvider.CreateDefaultProvider(), GetCompositeBinder(binders), valueProvider, new List <IInputFormatter>(), new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider), validator, m => m.IncludedProperty, m => m.MyProperty); // Assert Assert.True(result); Assert.Equal("MyPropertyValue", model.MyProperty); Assert.Equal("IncludedPropertyValue", model.IncludedProperty); Assert.Equal("Old-ExcludedPropertyValue", model.ExcludedProperty); }
public async void GetLastWriteTime_DateTime_ShouldBeReturnTrueLastAccessTimeUtc(int urlFlag, int fileNameFlag) { // Arrange var dateTime = DateTime.Now; var fileService = new FileService(); var fileName = TestValueProvider.GetValueStringByFlag(fileNameFlag); await fileService.DownloadByLinkAsync(new Uri(TestValueProvider.GetValueStringByFlag(urlFlag)), fileName, CancellationToken.None); // Act var result = await fileService.GetLastWriteTime(fileName); // Assert Assert.Equal(dateTime.Date, result.Date); }
public async Task TryUpdateModel_UsingDefaultIncludeOverload_IncludesAllProperties() { // Arrange var binders = new IModelBinder[] { new TypeConverterModelBinder(), new ComplexModelDtoModelBinder(), new MutableObjectModelBinder() }; var validator = new DataAnnotationsModelValidatorProvider(); var model = new MyModel { MyProperty = "Old-Value", IncludedProperty = "Old-IncludedPropertyValue", ExcludedProperty = "Old-ExcludedPropertyValue" }; var modelStateDictionary = new ModelStateDictionary(); var values = new Dictionary <string, object> { { "", null }, { "MyProperty", "MyPropertyValue" }, { "IncludedProperty", "IncludedPropertyValue" }, { "ExcludedProperty", "ExcludedPropertyValue" } }; var valueProvider = new TestValueProvider(values); var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); // Act var result = await ModelBindingHelper.TryUpdateModelAsync( model, "", Mock.Of <HttpContext>(), modelStateDictionary, metadataProvider, GetCompositeBinder(binders), valueProvider, new DefaultObjectValidator(Mock.Of <IValidationExcludeFiltersProvider>(), metadataProvider), validator); // Assert // Includes everything. Assert.True(result); Assert.Equal("MyPropertyValue", model.MyProperty); Assert.Equal("IncludedPropertyValue", model.IncludedProperty); Assert.Equal("ExcludedPropertyValue", model.ExcludedProperty); }
public async void DownloadByLinkAsync_DoneTask_ShouldBeDownloadFileByLink(int urlFlag, int fileNameFlag) { // Arrange var fileService = new FileService(); var url = TestValueProvider.GetValueStringByFlag(urlFlag); var fileName = Path.Combine(TestValueProvider.GetValueStringByFlag(fileNameFlag) + ".xlsx"); // Act await fileService.DownloadByLinkAsync(new Uri(url), fileName, CancellationToken.None); // Assert var result = File.Exists(fileName); Assert.True(result); }
private static DefaultModelBindingContext CreateContext(ModelMetadata metadata, object model = null) { var valueProvider = new TestValueProvider(new Dictionary <string, object>()); return(new DefaultModelBindingContext() { BinderModelName = metadata.BinderModelName, BindingSource = metadata.BindingSource, IsTopLevelObject = true, Model = model, ModelMetadata = metadata, ModelName = "theModel", ModelState = new ModelStateDictionary(), ValueProvider = valueProvider, }); }
public async void CheckExcelFile_Bool_ShouldBeReturnTrue(int urlFlag, int fileNameFlag, bool expected) { // Arrange var dateTime = DateTime.Now; var fileService = new FileService(); var fileName = TestValueProvider.GetValueStringByFlag(fileNameFlag); await fileService.DownloadByLinkAsync(new Uri(TestValueProvider.GetValueStringByFlag(urlFlag)), fileName, CancellationToken.None); // Act var result = await fileService.CheckExcelFile(dateTime, fileName); _testOutputHelper.WriteLine(result.ToString(CultureInfo.CurrentCulture)); // Assert Assert.Equal(expected, result); }
public async Task TryUpdateModelNonGeneric_ModelTypeOverload_ReturnsTrue_IfModelBindsAndValidatesSuccessfully() { // Arrange var binders = new IModelBinder[] { new TypeConverterModelBinder(), new ComplexModelDtoModelBinder(), new MutableObjectModelBinder() }; var validator = new DataAnnotationsModelValidatorProvider(); var model = new MyModel { MyProperty = "Old-Value" }; var modelStateDictionary = new ModelStateDictionary(); var values = new Dictionary <string, object> { { "", null }, { "MyProperty", "MyPropertyValue" } }; var valueProvider = new TestValueProvider(values); var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); // Act var result = await ModelBindingHelper.TryUpdateModelAsync( model, model.GetType(), "", Mock.Of <HttpContext>(), modelStateDictionary, TestModelMetadataProvider.CreateDefaultProvider(), GetCompositeBinder(binders), valueProvider, new DefaultObjectValidator( Mock.Of <IValidationExcludeFiltersProvider>(), metadataProvider), validator); // Assert Assert.True(result); Assert.Equal("MyPropertyValue", model.MyProperty); }
public async Task TryUpdateModel_ReturnsFalse_IfModelValidationFails() { // Arrange var expectedMessage = TestPlatformHelper.IsMono ? "The field MyProperty is invalid." : "The MyProperty field is required."; var binders = new IModelBinder[] { new TypeConverterModelBinder(), new ComplexModelDtoModelBinder(), new MutableObjectModelBinder() }; var validator = new DataAnnotationsModelValidatorProvider(); var model = new MyModel(); var modelStateDictionary = new ModelStateDictionary(); var values = new Dictionary <string, object> { { "", null } }; var valueProvider = new TestValueProvider(values); var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); // Act var result = await ModelBindingHelper.TryUpdateModelAsync( model, "", Mock.Of <HttpContext>(), modelStateDictionary, modelMetadataProvider, GetCompositeBinder(binders), valueProvider, new List <IInputFormatter>(), new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], modelMetadataProvider), validator); // Assert Assert.False(result); var error = Assert.Single(modelStateDictionary["MyProperty"].Errors); Assert.Equal(expectedMessage, error.ErrorMessage); }
public async void DownloadByLinkAsync_DoneTask_ShouldBeDownloadFile(int fileNameFlag) { // Arrange var fileService = new FileService(); var fileName = Path.Combine(TestValueProvider.GetValueStringByFlag(fileNameFlag)); var downloadFileParametersModel = new DownloadFileParametersModel { //https://www.mirea.ru/upload/medialibrary/97d/KBiSP-4-kurs-2-sem-_1_.xlsx PathToFile = string.Empty, RemoteUri = new Uri("https://www.mirea.ru/upload/medialibrary/97d/"), FileNameLocal = fileName, FileNameRemote = "KBiSP-4-kurs-2-sem-_1_", FileFormat = "xlsx" }; // Act await fileService.DownloadAsync(downloadFileParametersModel, CancellationToken.None); // Assert var result = File.Exists(fileName + ".xlsx"); Assert.True(result); }
private static DefaultModelBindingContext CreateContext(ModelMetadata metadata, object model = null) { var valueProvider = new TestValueProvider(new Dictionary<string, object>()); return new DefaultModelBindingContext() { BinderModelName = metadata.BinderModelName, BindingSource = metadata.BindingSource, IsTopLevelObject = true, Model = model, ModelMetadata = metadata, ModelName = "theModel", ModelState = new ModelStateDictionary(), ValueProvider = valueProvider, }; }