< Summary

Information
Class: /home/wethinkcode/student_work/csharp/GroupProject/super-cool-group/weshare-qa/GeneratedApiCode/src/Applications.WeShare.Swagger/Client/Multimap.cs
Assembly: Default
File(s): /home/wethinkcode/student_work/csharp/GroupProject/super-cool-group/weshare-qa/GeneratedApiCode/src/Applications.WeShare.Swagger/Client/Multimap.cs
Line coverage
25%
Covered lines: 24
Uncovered lines: 69
Coverable lines: 93
Total lines: 295
Line coverage: 25.8%
Branch coverage
18%
Covered branches: 4
Total branches: 22
Branch coverage: 18.1%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

File(s)

/home/wethinkcode/student_work/csharp/GroupProject/super-cool-group/weshare-qa/GeneratedApiCode/src/Applications.WeShare.Swagger/Client/Multimap.cs

#LineLine coverage
 1/*
 2 * WeShare API
 3 *
 4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 5 *
 6 * The version of the OpenAPI document: 1.0
 7 * Generated by: https://github.com/openapitools/openapi-generator.git
 8 */
 9
 10
 11using System;
 12using System.Collections;
 13using System.Collections.Generic;
 14
 15namespace Applications.WeShare.Swagger.Client
 16{
 17    /// <summary>
 18    /// A dictionary in which one key has many associated values.
 19    /// </summary>
 20    /// <typeparam name="TKey">The type of the key</typeparam>
 21    /// <typeparam name="TValue">The type of the value associated with the key.</typeparam>
 22    public class Multimap<TKey, TValue> : IDictionary<TKey, IList<TValue>>
 23    {
 24        #region Private Fields
 25
 26        private readonly Dictionary<TKey, IList<TValue>> _dictionary;
 27
 28        #endregion Private Fields
 29
 30        #region Constructors
 31
 32        /// <summary>
 33        /// Empty Constructor.
 34        /// </summary>
 13635        public Multimap()
 13636        {
 13637            _dictionary = new Dictionary<TKey, IList<TValue>>();
 13638        }
 39
 40        /// <summary>
 41        /// Constructor with comparer.
 42        /// </summary>
 43        /// <param name="comparer"></param>
 044        public Multimap(IEqualityComparer<TKey> comparer)
 045        {
 046            _dictionary = new Dictionary<TKey, IList<TValue>>(comparer);
 047        }
 48
 49        #endregion Constructors
 50
 51        #region Enumerators
 52
 53        /// <summary>
 54        /// To get the enumerator.
 55        /// </summary>
 56        /// <returns>Enumerator</returns>
 57        public IEnumerator<KeyValuePair<TKey, IList<TValue>>> GetEnumerator()
 10258        {
 10259            return _dictionary.GetEnumerator();
 10260        }
 61
 62        /// <summary>
 63        /// To get the enumerator.
 64        /// </summary>
 65        /// <returns>Enumerator</returns>
 66        IEnumerator IEnumerable.GetEnumerator()
 067        {
 068            return _dictionary.GetEnumerator();
 069        }
 70
 71        #endregion Enumerators
 72
 73        #region Public Members
 74        /// <summary>
 75        /// Add values to Multimap
 76        /// </summary>
 77        /// <param name="item">Key value pair</param>
 78        public void Add(KeyValuePair<TKey, IList<TValue>> item)
 079        {
 080            if (!TryAdd(item.Key, item.Value))
 081                throw new InvalidOperationException("Could not add values to Multimap.");
 082        }
 83
 84        /// <summary>
 85        /// Add Multimap to Multimap
 86        /// </summary>
 87        /// <param name="multimap">Multimap</param>
 88        public void Add(Multimap<TKey, TValue> multimap)
 089        {
 090            foreach (var item in multimap)
 091            {
 092                if (!TryAdd(item.Key, item.Value))
 093                    throw new InvalidOperationException("Could not add values to Multimap.");
 094            }
 095        }
 96
 97        /// <summary>
 98        /// Clear Multimap
 99        /// </summary>
 100        public void Clear()
 0101        {
 0102            _dictionary.Clear();
 0103        }
 104
 105        /// <summary>
 106        /// Determines whether Multimap contains the specified item.
 107        /// </summary>
 108        /// <param name="item">Key value pair</param>
 109        /// <exception cref="NotImplementedException">Method needs to be implemented</exception>
 110        /// <returns>true if the Multimap contains the item; otherwise, false.</returns>
 111        public bool Contains(KeyValuePair<TKey, IList<TValue>> item)
 0112        {
 0113            throw new NotImplementedException();
 114        }
 115
 116        /// <summary>
 117        ///  Copy items of the Multimap to an array,
 118        ///     starting at a particular array index.
 119        /// </summary>
 120        /// <param name="array">The array that is the destination of the items copied
 121        ///     from Multimap. The array must have zero-based indexing.</param>
 122        /// <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
 123        /// <exception cref="NotImplementedException">Method needs to be implemented</exception>
 124        public void CopyTo(KeyValuePair<TKey, IList<TValue>>[] array, int arrayIndex)
 0125        {
 0126            throw new NotImplementedException();
 127        }
 128
 129        /// <summary>
 130        /// Removes the specified item from the Multimap.
 131        /// </summary>
 132        /// <param name="item">Key value pair</param>
 133        /// <returns>true if the item is successfully removed; otherwise, false.</returns>
 134        /// <exception cref="NotImplementedException">Method needs to be implemented</exception>
 135        public bool Remove(KeyValuePair<TKey, IList<TValue>> item)
 0136        {
 0137            throw new NotImplementedException();
 138        }
 139
 140        /// <summary>
 141        /// Gets the number of items contained in the Multimap.
 142        /// </summary>
 0143        public int Count => _dictionary.Count;
 144
 145        /// <summary>
 146        /// Gets a value indicating whether the Multimap is read-only.
 147        /// </summary>
 0148        public bool IsReadOnly => false;
 149
 150        /// <summary>
 151        /// Adds an item with the provided key and value to the Multimap.
 152        /// </summary>
 153        /// <param name="key">The object to use as the key of the item to add.</param>
 154        /// <param name="value">The object to use as the value of the item to add.</param>
 155        /// <exception cref="InvalidOperationException">Thrown when couldn't add the value to Multimap.</exception>
 156        public void Add(TKey key, IList<TValue> value)
 0157        {
 0158            if (value != null && value.Count > 0)
 0159            {
 0160                if (_dictionary.TryGetValue(key, out var list))
 0161                {
 0162                    foreach (var k in value) list.Add(k);
 0163                }
 164                else
 0165                {
 0166                    list = new List<TValue>(value);
 0167                    if (!TryAdd(key, list))
 0168                        throw new InvalidOperationException("Could not add values to Multimap.");
 0169                }
 0170            }
 0171        }
 172
 173        /// <summary>
 174        /// Determines whether the Multimap contains an item with the specified key.
 175        /// </summary>
 176        /// <param name="key">The key to locate in the Multimap.</param>
 177        /// <returns>true if the Multimap contains an item with
 178        ///     the key; otherwise, false.</returns>
 179        public bool ContainsKey(TKey key)
 0180        {
 0181            return _dictionary.ContainsKey(key);
 0182        }
 183
 184        /// <summary>
 185        /// Removes item with the specified key from the Multimap.
 186        /// </summary>
 187        /// <param name="key">The key to locate in the Multimap.</param>
 188        /// <returns>true if the item is successfully removed; otherwise, false.</returns>
 189        public bool Remove(TKey key)
 0190        {
 0191            return TryRemove(key, out var _);
 0192        }
 193
 194        /// <summary>
 195        /// Gets the value associated with the specified key.
 196        /// </summary>
 197        /// <param name="key">The key whose value to get.</param>
 198        /// <param name="value">When this method returns, the value associated with the specified key, if the
 199        ///     key is found; otherwise, the default value for the type of the value parameter.
 200        ///     This parameter is passed uninitialized.</param>
 201        /// <returns> true if the object that implements Multimap contains
 202        ///     an item with the specified key; otherwise, false.</returns>
 203        public bool TryGetValue(TKey key, out IList<TValue> value)
 0204        {
 0205            return _dictionary.TryGetValue(key, out value);
 0206        }
 207
 208        /// <summary>
 209        /// Gets or sets the item with the specified key.
 210        /// </summary>
 211        /// <param name="key">The key of the item to get or set.</param>
 212        /// <returns>The value of the specified key.</returns>
 213        public IList<TValue> this[TKey key]
 214        {
 7215            get => _dictionary[key];
 0216            set => _dictionary[key] = value;
 217        }
 218
 219        /// <summary>
 220        /// Gets a System.Collections.Generic.ICollection containing the keys of the Multimap.
 221        /// </summary>
 0222        public ICollection<TKey> Keys => _dictionary.Keys;
 223
 224        /// <summary>
 225        /// Gets a System.Collections.Generic.ICollection containing the values of the Multimap.
 226        /// </summary>
 0227        public ICollection<IList<TValue>> Values => _dictionary.Values;
 228
 229        /// <summary>
 230        ///  Copy the items of the Multimap to an System.Array,
 231        ///     starting at a particular System.Array index.
 232        /// </summary>
 233        /// <param name="array">The one-dimensional System.Array that is the destination of the items copied
 234        ///     from Multimap. The System.Array must have zero-based indexing.</param>
 235        /// <param name="index">The zero-based index in array at which copying begins.</param>
 236        public void CopyTo(Array array, int index)
 0237        {
 0238            ((ICollection)_dictionary).CopyTo(array, index);
 0239        }
 240
 241        /// <summary>
 242        /// Adds an item with the provided key and value to the Multimap.
 243        /// </summary>
 244        /// <param name="key">The object to use as the key of the item to add.</param>
 245        /// <param name="value">The object to use as the value of the item to add.</param>
 246        /// <exception cref="InvalidOperationException">Thrown when couldn't add value to Multimap.</exception>
 247        public void Add(TKey key, TValue value)
 141248        {
 141249            if (value != null)
 141250            {
 141251                if (_dictionary.TryGetValue(key, out var list))
 0252                {
 0253                    list.Add(value);
 0254                }
 255                else
 141256                {
 141257                    list = new List<TValue> { value };
 141258                    if (!TryAdd(key, list))
 0259                        throw new InvalidOperationException("Could not add value to Multimap.");
 141260                }
 141261            }
 141262        }
 263
 264        #endregion Public Members
 265
 266        #region Private Members
 267
 268        /**
 269         * Helper method to encapsulate generator differences between dictionary types.
 270         */
 271        private bool TryRemove(TKey key, out IList<TValue> value)
 0272        {
 0273            _dictionary.TryGetValue(key, out value);
 0274            return _dictionary.Remove(key);
 0275        }
 276
 277        /**
 278         * Helper method to encapsulate generator differences between dictionary types.
 279         */
 280        private bool TryAdd(TKey key, IList<TValue> value)
 141281        {
 282            try
 141283            {
 141284                _dictionary.Add(key, value);
 141285            }
 0286            catch (ArgumentException)
 0287            {
 0288                return false;
 289            }
 290
 141291            return true;
 141292        }
 293        #endregion Private Members
 294    }
 295}

Methods/Properties

System.Void Applications.WeShare.Swagger.Client.Multimap`2::.ctor()
System.Void Applications.WeShare.Swagger.Client.Multimap`2::.ctor(System.Collections.Generic.IEqualityComparer`1<TKey>)
System.Collections.Generic.IEnumerator`1<System.Collections.Generic.KeyValuePair`2<TKey,System.Collections.Generic.IList`1<TValue>>> Applications.WeShare.Swagger.Client.Multimap`2::GetEnumerator()
System.Collections.IEnumerator Applications.WeShare.Swagger.Client.Multimap`2::System.Collections.IEnumerable.GetEnumerator()
System.Void Applications.WeShare.Swagger.Client.Multimap`2::Add(System.Collections.Generic.KeyValuePair`2<TKey,System.Collections.Generic.IList`1<TValue>>)
System.Void Applications.WeShare.Swagger.Client.Multimap`2::Add(Applications.WeShare.Swagger.Client.Multimap`2<TKey,TValue>)
System.Void Applications.WeShare.Swagger.Client.Multimap`2::Clear()
System.Boolean Applications.WeShare.Swagger.Client.Multimap`2::Contains(System.Collections.Generic.KeyValuePair`2<TKey,System.Collections.Generic.IList`1<TValue>>)
System.Void Applications.WeShare.Swagger.Client.Multimap`2::CopyTo(System.Collections.Generic.KeyValuePair`2<TKey,System.Collections.Generic.IList`1<TValue>>[],System.Int32)
System.Boolean Applications.WeShare.Swagger.Client.Multimap`2::Remove(System.Collections.Generic.KeyValuePair`2<TKey,System.Collections.Generic.IList`1<TValue>>)
System.Int32 Applications.WeShare.Swagger.Client.Multimap`2::get_Count()
System.Boolean Applications.WeShare.Swagger.Client.Multimap`2::get_IsReadOnly()
System.Void Applications.WeShare.Swagger.Client.Multimap`2::Add(TKey,System.Collections.Generic.IList`1<TValue>)
System.Boolean Applications.WeShare.Swagger.Client.Multimap`2::ContainsKey(TKey)
System.Boolean Applications.WeShare.Swagger.Client.Multimap`2::Remove(TKey)
System.Boolean Applications.WeShare.Swagger.Client.Multimap`2::TryGetValue(TKey,System.Collections.Generic.IList`1<TValue>&)
System.Collections.Generic.IList`1<TValue> Applications.WeShare.Swagger.Client.Multimap`2::get_Item(TKey)
System.Void Applications.WeShare.Swagger.Client.Multimap`2::set_Item(TKey,System.Collections.Generic.IList`1<TValue>)
System.Collections.Generic.ICollection`1<TKey> Applications.WeShare.Swagger.Client.Multimap`2::get_Keys()
System.Collections.Generic.ICollection`1<System.Collections.Generic.IList`1<TValue>> Applications.WeShare.Swagger.Client.Multimap`2::get_Values()
System.Void Applications.WeShare.Swagger.Client.Multimap`2::CopyTo(System.Array,System.Int32)
System.Void Applications.WeShare.Swagger.Client.Multimap`2::Add(TKey,TValue)
System.Boolean Applications.WeShare.Swagger.Client.Multimap`2::TryRemove(TKey,System.Collections.Generic.IList`1<TValue>&)
System.Boolean Applications.WeShare.Swagger.Client.Multimap`2::TryAdd(TKey,System.Collections.Generic.IList`1<TValue>)