This commit is contained in:
Chris Cameron
2017-10-05 16:41:57 -04:00
parent eb24759580
commit 3b0bab02de
2 changed files with 197 additions and 169 deletions

View File

@@ -13,10 +13,10 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> dict = new Dictionary<int, int> Dictionary<int, int> dict = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 20 }, {2, 20},
{ 3, 30 }, {3, 30},
{ 4, 40 }, {4, 40},
}; };
Assert.IsTrue(dict.RemoveValue(10)); Assert.IsTrue(dict.RemoveValue(10));
@@ -31,10 +31,10 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> dict = new Dictionary<int, int> Dictionary<int, int> dict = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 10 }, {2, 10},
{ 3, 30 }, {3, 30},
{ 4, 40 }, {4, 40},
}; };
dict.RemoveAllValues(10); dict.RemoveAllValues(10);
@@ -49,10 +49,10 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> dict = new Dictionary<int, int> Dictionary<int, int> dict = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 10 }, {2, 10},
{ 3, 30 }, {3, 30},
{ 4, 40 }, {4, 40},
}; };
Assert.AreEqual(10, dict.GetDefault(1)); Assert.AreEqual(10, dict.GetDefault(1));
@@ -64,10 +64,10 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> dict = new Dictionary<int, int> Dictionary<int, int> dict = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 10 }, {2, 10},
{ 3, 30 }, {3, 30},
{ 4, 40 }, {4, 40},
}; };
Assert.AreEqual(10, dict.GetDefault(1, 1000)); Assert.AreEqual(10, dict.GetDefault(1, 1000));
@@ -79,10 +79,10 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> dict = new Dictionary<int, int> Dictionary<int, int> dict = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 10 }, {2, 10},
{ 3, 30 }, {3, 30},
{ 4, 40 }, {4, 40},
}; };
Assert.AreEqual(10, dict.GetOrAddDefault(1, 1000)); Assert.AreEqual(10, dict.GetOrAddDefault(1, 1000));
@@ -96,9 +96,9 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> dict = new Dictionary<int, int> Dictionary<int, int> dict = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 20 }, {2, 20},
{ 3, 30 } {3, 30}
}; };
Assert.AreEqual(1, dict.GetKey(10)); Assert.AreEqual(1, dict.GetKey(10));
@@ -112,9 +112,9 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> dict = new Dictionary<int, int> Dictionary<int, int> dict = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 20 }, {2, 20},
{ 3, 30 } {3, 30}
}; };
int key; int key;
@@ -134,9 +134,9 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> dict = new Dictionary<int, int> Dictionary<int, int> dict = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 10 }, {2, 10},
{ 3, 30 } {3, 30}
}; };
int[] aKeys = dict.GetKeys(10).ToArray(); int[] aKeys = dict.GetKeys(10).ToArray();
@@ -158,14 +158,14 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> a = new Dictionary<int, int> Dictionary<int, int> a = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 10 }, {2, 10},
}; };
Dictionary<int, int> b = new Dictionary<int, int> Dictionary<int, int> b = new Dictionary<int, int>
{ {
{ 2, 20 }, {2, 20},
{ 3, 30 } {3, 30}
}; };
a.Update(b); a.Update(b);
@@ -201,31 +201,25 @@ namespace ICD.Common.Utils.Tests.Extensions
[Test] [Test]
public void DictionaryEqualTest() public void DictionaryEqualTest()
{
Assert.Inconclusive();
}
[Test]
public void DictionaryEqualComparerTest()
{ {
Dictionary<int, int> a = new Dictionary<int, int> Dictionary<int, int> a = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 20 }, {2, 20},
{ 3, 30 }, {3, 30}
}; };
Dictionary<int, int> b = new Dictionary<int, int> Dictionary<int, int> b = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 20 }, {2, 20},
{ 3, 30 }, {3, 30}
}; };
Dictionary<int, int> c = new Dictionary<int, int> Dictionary<int, int> c = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 20 } {2, 20}
}; };
Assert.IsTrue(a.DictionaryEqual(b)); Assert.IsTrue(a.DictionaryEqual(b));
@@ -236,19 +230,49 @@ namespace ICD.Common.Utils.Tests.Extensions
} }
[Test] [Test]
public void DictionaryEqualFuncComparerTest() public void DictionaryEqualComparerTest()
{ {
Assert.Inconclusive(); Assert.Inconclusive();
} }
[Test]
public void DictionaryEqualFuncComparerTest()
{
Dictionary<int, int> a = new Dictionary<int, int>
{
{1, 10},
{2, 20},
{3, 30}
};
Dictionary<int, int> b = new Dictionary<int, int>
{
{1, 10},
{2, 20},
{3, 30}
};
Dictionary<int, int> c = new Dictionary<int, int>
{
{1, 10},
{2, 20}
};
Assert.IsTrue(a.DictionaryEqual(b, (left, right) => left / 10 == right / 10));
Assert.IsTrue(b.DictionaryEqual(a, (left, right) => left / 10 == right / 10));
Assert.IsFalse(a.DictionaryEqual(c, (left, right) => left / 10 == right / 10));
Assert.IsFalse(c.DictionaryEqual(a, (left, right) => left / 10 == right / 10));
}
[Test] [Test]
public void OrderByKeyTest() public void OrderByKeyTest()
{ {
Dictionary<int, int> a = new Dictionary<int, int> Dictionary<int, int> a = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 20 }, {2, 20},
{ 3, 30 }, {3, 30}
}; };
KeyValuePair<int, int>[] ordered = a.OrderByKey().ToArray(); KeyValuePair<int, int>[] ordered = a.OrderByKey().ToArray();
@@ -264,9 +288,9 @@ namespace ICD.Common.Utils.Tests.Extensions
{ {
Dictionary<int, int> a = new Dictionary<int, int> Dictionary<int, int> a = new Dictionary<int, int>
{ {
{ 1, 10 }, {1, 10},
{ 2, 20 }, {2, 20},
{ 3, 30 }, {3, 30},
}; };
int[] ordered = a.OrderValuesByKey().ToArray(); int[] ordered = a.OrderValuesByKey().ToArray();

View File

@@ -1,6 +1,7 @@
using NUnit.Framework; using NUnit.Framework;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using ICD.Common.Properties;
#if SIMPLSHARP #if SIMPLSHARP
using Crestron.SimplSharp.Reflection; using Crestron.SimplSharp.Reflection;
#else #else
@@ -12,16 +13,19 @@ namespace ICD.Common.Utils.Tests
[TestFixture] [TestFixture]
public sealed class ReflectionUtilsTest public sealed class ReflectionUtilsTest
{ {
[UsedImplicitly]
private string TestProperty { get; set; } private string TestProperty { get; set; }
[UsedImplicitly]
private void TestMethod(string param1, int param2) private void TestMethod(string param1, int param2)
{ {
} }
private class TestClass [UsedImplicitly]
private sealed class TestClass
{ {
public string Param1 { get; set; } public string Param1 { get; }
public int Param2 { get; set; } public int Param2 { get; }
public TestClass(string param1, int param2) public TestClass(string param1, int param2)
{ {
@@ -46,31 +50,31 @@ namespace ICD.Common.Utils.Tests
{ {
Assert.Throws<ArgumentNullException>(() => ReflectionUtils.MatchesConstructorParameters(null, new object[] { "test", 10 })); Assert.Throws<ArgumentNullException>(() => ReflectionUtils.MatchesConstructorParameters(null, new object[] { "test", 10 }));
ConstructorInfo constructor = typeof(TestClass).GetConstructor(new Type[] { typeof(string), typeof(int) }); ConstructorInfo constructor = typeof(TestClass).GetConstructor(new Type[] {typeof(string), typeof(int)});
Assert.IsTrue(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] { "test", 10 })); Assert.IsTrue(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] {"test", 10}));
Assert.IsTrue(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] { null, 10 })); Assert.IsTrue(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] {null, 10}));
Assert.IsFalse(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] { "test", "test" })); Assert.IsFalse(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] {"test", "test"}));
Assert.IsFalse(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] { "test" })); Assert.IsFalse(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] {"test"}));
Assert.IsFalse(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] { "test", "test", "test" })); Assert.IsFalse(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] {"test", "test", "test"}));
Assert.IsFalse(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] { 10, 10 })); Assert.IsFalse(ReflectionUtils.MatchesConstructorParameters(constructor, new object[] {10, 10}));
} }
[Test] [Test]
public void MatchesMethodParametersTest() public void MatchesMethodParametersTest()
{ {
Assert.Throws<ArgumentNullException>(() => ReflectionUtils.MatchesMethodParameters(null, new object[] { "test", 10 })); Assert.Throws<ArgumentNullException>(() => ReflectionUtils.MatchesMethodParameters(null, new object[] {"test", 10}));
MethodInfo method = GetType().GetMethod("TestMethod", MethodInfo method = GetType().GetMethod("TestMethod",
BindingFlags.NonPublic | BindingFlags.NonPublic |
BindingFlags.Instance); BindingFlags.Instance);
Assert.IsTrue(ReflectionUtils.MatchesMethodParameters(method, new object[] { "test", 10 })); Assert.IsTrue(ReflectionUtils.MatchesMethodParameters(method, new object[] {"test", 10}));
Assert.IsTrue(ReflectionUtils.MatchesMethodParameters(method, new object[] { null, 10 })); Assert.IsTrue(ReflectionUtils.MatchesMethodParameters(method, new object[] {null, 10}));
Assert.IsFalse(ReflectionUtils.MatchesMethodParameters(method, new object[] { "test", "test" })); Assert.IsFalse(ReflectionUtils.MatchesMethodParameters(method, new object[] {"test", "test"}));
Assert.IsFalse(ReflectionUtils.MatchesMethodParameters(method, new object[] { "test" })); Assert.IsFalse(ReflectionUtils.MatchesMethodParameters(method, new object[] {"test"}));
Assert.IsFalse(ReflectionUtils.MatchesMethodParameters(method, new object[] { "test", "test", "test" })); Assert.IsFalse(ReflectionUtils.MatchesMethodParameters(method, new object[] {"test", "test", "test"}));
Assert.IsFalse(ReflectionUtils.MatchesMethodParameters(method, new object[] { 10, 10 })); Assert.IsFalse(ReflectionUtils.MatchesMethodParameters(method, new object[] {10, 10}));
} }
[Test] [Test]