public void MultipleEnumerations_ShouldEnumerateOnce() { var enumerable = new SingleEnumerable <int>(Enumerable.Range(1, 3)); var cachedEnumerable = CachedEnumerable.Create(enumerable); Assert.Equal(new[] { 1, 2, 3 }, cachedEnumerable); Assert.Equal(new[] { 1, 2, 3 }, cachedEnumerable); }
public void SingleEnumerableTest() { var single = new SingleEnumerable <int>(42); Assert.NotNull(single); Assert.AreEqual(42, single.First()); Assert.AreEqual(42, single.Last()); Assert.AreEqual(1, single.Count()); var enumerator = single.GetEnumerator(); Assert.NotNull(enumerator); Assert.IsInstanceOf <IEnumerator <int> >(enumerator); Assert.AreEqual(0, enumerator.Current); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(42, enumerator.Current); Assert.IsFalse(enumerator.MoveNext()); Assert.AreEqual(0, enumerator.Current); enumerator.Reset(); Assert.AreEqual(0, enumerator.Current); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(42, enumerator.Current); Assert.IsFalse(enumerator.MoveNext()); Assert.AreEqual(0, enumerator.Current); }
private WsdlImporter CreateImporter(EndPointSetting wsdl) { var endpoint = new EndpointAddress(wsdl.Uri); var binding = new WSHttpBinding(SecurityMode.None) { MaxReceivedMessageSize = Int32.MaxValue, }; var mex = new MetadataExchangeClient(binding); mex.ResolveMetadataReferences = true; var sections = new SingleEnumerable<EndpointAddress>(endpoint) .Select(ma => mex.GetMetadata(ma.Uri, MetadataExchangeClientMode.HttpGet)) .SelectMany(mds => mds.MetadataSections); var metaDocs = new MetadataSet(sections); return new WsdlImporter(metaDocs); }