public void BasicMap2T() { ICoffeeMapper mapper = CreateMapperWithExampleMapping(); ExampleClass1 exampleObject1 = GetObject1(); ExampleClass2 result = mapper.Map <ExampleClass1, ExampleClass2>(exampleObject1); Assert.AreEqual(exampleObject1.A, result.A); }
public void NoMappingFoundException() { ClassMappingInstructionHolder mappingInstructions = new ClassMappingInstructionHolder(); ICoffeeMapper mapper = new CoffeeMapper(mappingInstructions); ExampleClass1 exampleObject1 = GetObject1(); Assert.ThrowsException <NoMappingFoundException> (() => mapper.Map <ExampleClass2>(exampleObject1)); }
public void SelfRegistrationTest() { DependencyProvider provider; DependenciesConfig config = new DependenciesConfig(); config.Register <ExampleClass1, ExampleClass1>(true); provider = new DependencyProvider(config); ExampleClass1 actual = provider.Resolve <ExampleClass1>(); Assert.IsNotNull(actual); }
public void BasicMap0T() { ICoffeeMapper mapper = CreateMapperWithExampleMapping(); ExampleClass1 exampleObject1 = GetObject1(); object objResult = mapper.Map(exampleObject1, typeof(ExampleClass1), typeof(ExampleClass2)); Assert.IsInstanceOfType(objResult, typeof(ExampleClass2)); ExampleClass2 result = (ExampleClass2)objResult; Assert.AreEqual(exampleObject1.A, result.A); }
public void TestCreateFunction2c() { string n = nameof(ExampleClass1.AppendTextAndGet); MethodInfo m = typeof(ExampleClass1).GetMethod(n, new Type[] { typeof(string) }); Func2 appendAndGet = Accelerator.CreateFunction2(m); var o = new ExampleClass1(); Assert.AreEqual("ABC", o.AppendTextAndGet("ABC")); Assert.AreEqual("ABC", o.Text); Assert.AreEqual("ABCXYZ", (string)appendAndGet(o, "XYZ")); Assert.AreEqual("ABCXYZ", o.Text); }
public void ClassMappingAutoDiscoversBasicPropertyWithMismatchTypes() { ClassMappingInstructionHolder mappingInstructions = new ClassMappingInstructionHolder(); mappingInstructions.AddMapping <ExampleClass1, ExampleClassWithIntProperty>(new ClassMappingInstructionOptions { AutoAddPropertiesWithSameName = true }); ICoffeeMapper mapper = new CoffeeMapper(mappingInstructions); ExampleClass1 exampleObject1 = GetObject1(); ExampleClassWithIntProperty result = mapper.Map <ExampleClassWithIntProperty>(exampleObject1); Assert.AreEqual(exampleObject1.A, result.A); }
public void ClassMappingWithoutAutoDiscoversBasicProperty() { ClassMappingInstructionHolder mappingInstructions = new ClassMappingInstructionHolder(); mappingInstructions.AddMapping <ExampleClass1, ExampleClass2>(new ClassMappingInstructionOptions { AutoAddPropertiesWithSameName = false }); ICoffeeMapper mapper = new CoffeeMapper(mappingInstructions); ExampleClass1 exampleObject1 = GetObject1(); ExampleClass2 result = mapper.Map <ExampleClass2>(exampleObject1); Assert.AreEqual(null, result.A); }
public void TestCreateAction2a() { string n = nameof(ExampleClass1.Increment); Action2 inc = Accelerator.CreateAction2(typeof(ExampleClass1).GetMethod(n, new[] { typeof(int) })); var o = new ExampleClass1(); o.Increment(1); Assert.AreEqual(1, o.Value); inc(o, 3); Assert.AreEqual(4, o.Value); inc(o, 11); Assert.AreEqual(15, o.Value); }
public void TestCreateAction1a() { string n = nameof(ExampleClass1.Increment); Action1 inc = Accelerator.CreateAction1(typeof(ExampleClass1).GetMethod(n, Type.EmptyTypes)); var o = new ExampleClass1(); o.Increment(); Assert.AreEqual(1, o.Value); inc(o); Assert.AreEqual(2, o.Value); inc(o); inc(o); Assert.AreEqual(4, o.Value); }
public void CycleDependencyTest() { DependencyProvider provider; DependenciesConfig config = new DependenciesConfig(); config.Register <ExampleClass1, ExampleClass1>(false); config.Register <ExampleClass2, ExampleClass2>(true); config.Register <ExampleClass3, ExampleClass3>(true); provider = new DependencyProvider(config); ExampleClass1 actual = provider.Resolve <ExampleClass1>(); Assert.IsNotNull(actual); Assert.AreEqual(null, actual.example.example.example); }
public void TestCreateFunction1a() { string n = nameof(ExampleClass1.IncrementAndGet); MethodInfo m = typeof(ExampleClass1).GetMethod(n, Type.EmptyTypes); Func1 incAndGet = Accelerator.CreateFunction1(m); var o = new ExampleClass1(); Assert.AreEqual(0, o.Value); Assert.AreEqual(1, o.IncrementAndGet()); Assert.AreEqual(1, o.Value); Assert.AreEqual(2, (int)incAndGet(o)); Assert.AreEqual(2, o.Value); Assert.AreEqual(3, (int)incAndGet(o)); Assert.AreEqual(4, (int)incAndGet(o)); Assert.AreEqual(4, o.Value); }
public static void DoSomething() { var exampleObject = new ExampleClass1(); // System.Type typeOfXyz = exampleObject.GetType(); // System.Reflection.MemberInfo memberInfo = typeOfXyz.GetMethod("DoHoge"); // var pre = Attribute.GetCustomAttributes(memberInfo, typeof (DeclaredExceptionAttribute)); // DeclaredExceptionAttribute[] hoges = (DeclaredExceptionAttribute[])pre; // foreach (var hoge in hoges) // { // Console.Write(hoge.exceptionType); // } // var stackTrace = new AlternativeStackTrace(1); // Console.WriteLine(stackTrace); // Error<Exception> a = (Error<Exception>)new Exception("abc"); // Console.WriteLine(a.stackTrace); Exceptional <int> ret1 = exampleObject.DoHoge(returnsError: false); Console.WriteLine($"ret1 は {ret1}."); var ret2 = exampleObject.DoHoge(returnsError: true); Console.WriteLine($"ret2 は {ret2}."); var ret3 = exampleObject.DoHoge(returnsError: true); if (ret3.hasError) { Console.WriteLine(ret3.error.stackTrace); } int ret4 = exampleObject.DoHoge(returnsError: false); Console.WriteLine($"ret4 は {ret4}."); // int ret5 = exampleObject.DoHoge(returnsError: true); // 終了待機 Console.ReadKey(); }