public void BooleanTypeTest() { var context = new RIContext(); context.AddNamedInstanceProvider("0", new SimpleInstanceProvider(false)); context.AddNamedInstanceProvider("1", new SimpleInstanceProvider(true)); var falseValue = context.GetInstance <bool>("0"); Assert.IsFalse(falseValue); var trueValue = context.GetInstance <bool>("1"); Assert.IsTrue(trueValue); }
public void ClassTypeTest() { var context = new RIContext(); var nameInstanceProvider = new SimpleInstanceProvider("Jørgen"); var ageInstanceProvider = new SimpleInstanceProvider(49); var genderInstanceProvider = new EnumInstanceProvider(Gender.Male, typeof(Gender)); var dateOfBirth = new DateTime(1966, 7, 14); var classInstanceProvider = new ComplexInstanceProvider( typeof(Person), new IInstanceProvider[] { nameInstanceProvider, ageInstanceProvider, genderInstanceProvider }, new Dictionary <string, IInstanceProvider>() { { "Birthday", new SimpleInstanceProvider(dateOfBirth) }, } ); context.AddNamedInstanceProvider("A", classInstanceProvider); var person = context.GetInstance <Person>("A"); Assert.AreEqual("Jørgen", person.Name); var now = DateTime.Today; var age = now.Year - dateOfBirth.Year + (now.DayOfYear >= dateOfBirth.DayOfYear ? 0 : -1); Assert.AreEqual(age, person.Age); Assert.AreEqual(Gender.Male, person.Gender); }
public void TestTwoParams() { var context = new RIContext(); context.AddNamedInstanceProvider("A", new ComplexInstanceProvider( typeof(TestClass), new IInstanceProvider[] { new SimpleInstanceProvider(36), new ListInstanceProvider( new IInstanceProvider[] { new SimpleInstanceProvider("Text1"), new SimpleInstanceProvider("Text2"), }, ListInstanceProvider.CollectionType.Array ), }, new Dictionary <string, IInstanceProvider>() { } ) ); var instance = context.GetInstance <TestClass>("A"); var text = instance.GetText(); Assert.AreEqual("36 Text1, Text2", text); }
public void StringTypeTest() { var context = new RIContext(); context.AddNamedInstanceProvider("A", new SimpleInstanceProvider("This is a test!")); var s = context.GetInstance <string>("A"); Assert.AreEqual("This is a test!", s); }
public void NullInstanceTypeStrongTest() { var context = new RIContext(); context.AddNamedInstanceProvider("A", new NullTypeInstanceProvider(typeof(string))); var s = context.GetInstance <string>("A"); Assert.IsNull(s); }
public void ConstantStringTest() { var context = new RIContext(); context.AddNamedInstanceProvider("A", new StaticInstanceProvider(typeof(Runerne.Instantiation.UnitTest.StaticClass), "Constant")); var s = context.GetInstance <string>("A"); Assert.IsInstanceOfType(s, typeof(string)); Assert.AreEqual("The content of the constant.", s); }
public void NoSuchNameTest() { var context = new RIContext(); context.AddNamedInstanceProvider("TheName", null); try { context.GetInstance("Kurt"); Assert.Fail("A InstanceNotFoundException was expected thrown."); } catch (InstanceNotFoundException ex) { Assert.AreEqual("Kurt", ex.InstanceName); } }
public void NoNullInstanceTypeStrongTest() { var context = new RIContext(); context.AddNamedInstanceProvider("A", new NullTypeInstanceProvider(typeof(string))); try { var s = context.GetInstance <int>("A"); Assert.Fail("An IncompatibleInstanceTypeException was expected."); } catch (IncompatibleInstanceTypeException) { } catch (Exception) { Assert.Fail("Another exception than IncompatibleInstanceTypeException was not expected."); } }
public void ElementTypeDerivingListTest() { var context = new RIContext(); var instanceProvider = new ListInstanceProvider( new IInstanceProvider[] { new SimpleInstanceProvider("Test"), new SimpleInstanceProvider("Horse"), new SimpleInstanceProvider("Cat"), } ); context.AddNamedInstanceProvider("A", instanceProvider); var s = context.GetInstance <IEnumerable <string> >("A"); var a = s.ToArray(); Assert.AreEqual(3, a.Length); Assert.AreEqual("Test", a[0]); Assert.AreEqual("Horse", a[1]); Assert.AreEqual("Cat", a[2]); }