public void EnumerateElements_TwoEnumerableImplementations() { // Arrange var model = new TwiceEnumerable(new int[] { 2, 3, 5 }); var metadata = TestModelMetadataProvider.CreateDefaultProvider().GetMetadataForType(typeof(TwiceEnumerable)); var strategy = DefaultCollectionValidationStrategy.Instance; // Act var enumerator = strategy.GetChildren(metadata, "prefix", model); // Assert Assert.Collection( BufferEntries(enumerator).OrderBy(e => e.Key), e => { Assert.Equal("prefix[0]", e.Key); Assert.Equal(2, e.Model); Assert.Same(metadata.ElementMetadata, e.Metadata); }, e => { Assert.Equal("prefix[1]", e.Key); Assert.Equal(3, e.Model); Assert.Same(metadata.ElementMetadata, e.Metadata); }, e => { Assert.Equal("prefix[2]", e.Key); Assert.Equal(5, e.Model); Assert.Same(metadata.ElementMetadata, e.Metadata); }); }
public void EnumerateElements_TwoEnumerableImplemenations() { // Arrange var model = new TwiceEnumerable(new int[] { 2, 3, 5 }); var metadata = TestModelMetadataProvider.CreateDefaultProvider().GetMetadataForType(typeof(TwiceEnumerable)); var strategy = new ExplicitIndexCollectionValidationStrategy(new string[] { "zero", "one", "two" }); // Act var enumerator = strategy.GetChildren(metadata, "prefix", model); // Assert Assert.Collection( BufferEntries(enumerator).OrderBy(e => e.Key), e => { Assert.Equal("prefix[one]", e.Key); Assert.Equal(3, e.Model); Assert.Same(metadata.ElementMetadata, e.Metadata); }, e => { Assert.Equal("prefix[two]", e.Key); Assert.Equal(5, e.Model); Assert.Same(metadata.ElementMetadata, e.Metadata); }, e => { Assert.Equal("prefix[zero]", e.Key); Assert.Equal(2, e.Model); Assert.Same(metadata.ElementMetadata, e.Metadata); }); }