public void CreateOrReplaceCollection_OriginalModelMutable_UpdatesOriginalInstance() { // Arrange List <int> originalInstance = new List <int> { 10, 20, 30 }; ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType( () => originalInstance, typeof(ICollection <int>) ) }; // Act CollectionModelBinderUtil.CreateOrReplaceCollection( bindingContext, new[] { 40, 50, 60 }, () => new List <int>() ); // Assert Assert.Same(originalInstance, bindingContext.Model); Assert.Equal(new[] { 40, 50, 60 }, originalInstance.ToArray()); }
public void CreateOrReplaceCollection_OriginalModelNotCollection_CreatesNewInstance() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType(null, typeof(ICollection <int>)) }; // Act CollectionModelBinderUtil.CreateOrReplaceCollection(bindingContext, new[] { 10, 20, 30 }, () => new List <int>()); // Assert int[] newModel = (bindingContext.Model as ICollection <int>).ToArray(); Assert.Equal(new[] { 10, 20, 30 }, newModel); }