public void NonPassThroughMembers() { var original = new Dictionary <int, int> { { 10, 20 } }; IDictionary <int, int> readOnly = new NodaReadOnlyDictionary <int, int>(original); Assert.IsTrue(readOnly.IsReadOnly); }
private WindowsZones(string version, string tzdbVersion, string windowsVersion, ReadOnlyCollection <MapZone> mapZones) { this.version = version; this.tzdbVersion = tzdbVersion; this.windowsVersion = windowsVersion; this.mapZones = mapZones; this.primaryMapping = new NodaReadOnlyDictionary <string, string>( mapZones.Where(z => z.Territory == MapZone.PrimaryTerritory) .ToDictionary(z => z.WindowsId, z => z.TzdbIds.Single())); }
public void MutatingMembers() { var original = new Dictionary<int, int>(); IDictionary<int, int> readOnly = new NodaReadOnlyDictionary<int, int>(original); Assert.Throws<NotSupportedException>(() => readOnly.Add(10, 10)); Assert.Throws<NotSupportedException>(() => readOnly.Add(new KeyValuePair<int, int>(10, 10))); Assert.Throws<NotSupportedException>(() => readOnly.Remove(10)); Assert.Throws<NotSupportedException>(() => readOnly.Remove(new KeyValuePair<int, int>(10, 10))); Assert.Throws<NotSupportedException>(() => readOnly.Clear()); Assert.Throws<NotSupportedException>(() => readOnly[15] = 20); }
public void MutatingMembers() { var original = new Dictionary <int, int>(); IDictionary <int, int> readOnly = new NodaReadOnlyDictionary <int, int>(original); Assert.Throws <NotSupportedException>(() => readOnly.Add(10, 10)); Assert.Throws <NotSupportedException>(() => readOnly.Add(new KeyValuePair <int, int>(10, 10))); Assert.Throws <NotSupportedException>(() => readOnly.Remove(10)); Assert.Throws <NotSupportedException>(() => readOnly.Remove(new KeyValuePair <int, int>(10, 10))); Assert.Throws <NotSupportedException>(() => readOnly.Clear()); Assert.Throws <NotSupportedException>(() => readOnly[15] = 20); }
public void PassThroughMembers() { var original = new Dictionary<int, int> { { 10, 20 } }; IDictionary<int, int> readOnly = new NodaReadOnlyDictionary<int, int>(original); Assert.AreEqual(20, readOnly[10]); int value; Assert.IsTrue(readOnly.TryGetValue(10, out value)); Assert.AreEqual(20, value); Assert.AreEqual(1, readOnly.Count); CollectionAssert.AreEqual(original, readOnly); CollectionAssert.AreEqual(original.Keys, readOnly.Keys); CollectionAssert.AreEqual(original.Values, readOnly.Values); }
private WindowsZones(string version, NodaReadOnlyDictionary <string, string> primaryMapping) { this.Version = version; this.WindowsVersion = "Unknown"; this.TzdbVersion = "Unknown"; this.PrimaryMapping = primaryMapping; var mapZoneList = new List <MapZone>(primaryMapping.Count); foreach (var entry in primaryMapping) { mapZoneList.Add(new MapZone(entry.Key, MapZone.PrimaryTerritory, new[] { entry.Value })); } MapZones = new ReadOnlyCollection <MapZone>(mapZoneList); }
private TzdbDateTimeZoneSource([NotNull] TzdbStreamData source) { Preconditions.CheckNotNull(source, nameof(source)); this.source = source; CanonicalIdMap = new NodaReadOnlyDictionary <string, string>(source.TzdbIdMap); Aliases = CanonicalIdMap .Where(pair => pair.Key != pair.Value) .OrderBy(pair => pair.Key, StringComparer.Ordinal) .ToLookup(pair => pair.Value, pair => pair.Key); version = source.TzdbVersion + " (mapping: " + source.WindowsMapping.Version + ")"; var originalZoneLocations = source.ZoneLocations; ZoneLocations = originalZoneLocations == null ? null : new ReadOnlyCollection <TzdbZoneLocation>(originalZoneLocations); var originalZone1970Locations = source.Zone1970Locations; Zone1970Locations = originalZone1970Locations == null ? null : new ReadOnlyCollection <TzdbZone1970Location>(originalZone1970Locations); }
public void PassThroughMembers() { var original = new Dictionary <int, int> { { 10, 20 } }; IDictionary <int, int> readOnly = new NodaReadOnlyDictionary <int, int>(original); Assert.AreEqual(20, readOnly[10]); int value; Assert.IsTrue(readOnly.TryGetValue(10, out value)); Assert.AreEqual(20, value); Assert.AreEqual(1, readOnly.Count); CollectionAssert.AreEqual(original, readOnly); CollectionAssert.AreEqual(original.Keys, readOnly.Keys); CollectionAssert.AreEqual(original.Values, readOnly.Values); }
public void PassThroughMembers() { var original = new Dictionary <int, int> { { 10, 20 } }; IDictionary <int, int> readOnly = new NodaReadOnlyDictionary <int, int>(original); Assert.AreEqual(20, readOnly[10]); Assert.IsTrue(readOnly.TryGetValue(10, out int value)); Assert.AreEqual(20, value); Assert.AreEqual(1, readOnly.Count); Assert.IsTrue(readOnly.Contains(new KeyValuePair <int, int>(10, 20))); CollectionAssert.AreEqual(original, readOnly); CollectionAssert.AreEqual(original.Keys, readOnly.Keys); CollectionAssert.AreEqual(original.Values, readOnly.Values); var array = new KeyValuePair <int, int> [1]; readOnly.CopyTo(array, 0); Assert.AreEqual(new KeyValuePair <int, int>(10, 20), array[0]); }
private TzdbDateTimeZoneSource([NotNull] TzdbStreamData source) { Preconditions.CheckNotNull(source, nameof(source)); this.source = source; CanonicalIdMap = new NodaReadOnlyDictionary<string, string>(source.TzdbIdMap); Aliases = CanonicalIdMap .Where(pair => pair.Key != pair.Value) .OrderBy(pair => pair.Key, StringComparer.Ordinal) .ToLookup(pair => pair.Value, pair => pair.Key); version = source.TzdbVersion + " (mapping: " + source.WindowsMapping.Version + ")"; var originalZoneLocations = source.ZoneLocations; ZoneLocations = originalZoneLocations == null ? null : new ReadOnlyCollection<TzdbZoneLocation>(originalZoneLocations); var originalZone1970Locations = source.Zone1970Locations; Zone1970Locations = originalZone1970Locations == null ? null : new ReadOnlyCollection<TzdbZone1970Location>(originalZone1970Locations); }
public void NonPassThroughMembers() { var original = new Dictionary<int, int> { { 10, 20 } }; IDictionary<int, int> readOnly = new NodaReadOnlyDictionary<int, int>(original); Assert.IsTrue(readOnly.IsReadOnly); }
private WindowsZones(string version, NodaReadOnlyDictionary<string, string> primaryMapping) { this.Version = version; this.WindowsVersion = "Unknown"; this.TzdbVersion = "Unknown"; this.PrimaryMapping = primaryMapping; var mapZoneList = new List<MapZone>(primaryMapping.Count); foreach (var entry in primaryMapping) { mapZoneList.Add(new MapZone(entry.Key, MapZone.PrimaryTerritory, new[] { entry.Value })); } MapZones = new ReadOnlyCollection<MapZone>(mapZoneList); }