public void ShouldLoadLazyObjects2() { var content = @"Discriminator,Engine Car,{new Gears.Interpreter.Tests.Pages.Iteration5Tests.Engine(){Power=5}} Apple,None "; var path = _inputFolder + "\\Scenario4.csv"; File.WriteAllText(path, content); Bootstrapper.Register(); ServiceLocator.Instance.Resolve <ITypeRegistry>().Register(typeof(Car)); ServiceLocator.Instance.Resolve <ITypeRegistry>().Register(typeof(Apple)); var obj = new FileObjectAccess(path, ServiceLocator.Instance.Resolve <ITypeRegistry>()).GetAll().First(); Assert.IsNotInstanceOf <CorruptObject>(obj, obj.ToString()); Assert.IsInstanceOf <Car>(obj); var car = obj as Car; Assert.IsNotNull(car.Engine); Assert.AreEqual(5, car.Engine.Power); var dataContext = new DataContext(new FileObjectAccess(path, ServiceLocator.Instance.Resolve <ITypeRegistry>())); var cars = dataContext.GetAll <Car>(); var apples = dataContext.GetAll <Apple>(); Assert.AreEqual(1, cars.Count()); Assert.AreEqual(1, apples.Count()); }
public void ShouldLoadLazyObjects3() { var content = @"Discriminator,Engine NonVirtualCar,{new Gears.Interpreter.Tests.Pages.Iteration5Tests.Engine(){Power=5}} NonVirtualApple,ApplesDontHaveEngines "; var path = _inputFolder + "\\Scenario4.csv"; File.WriteAllText(path, content); Bootstrapper.Register(); ServiceLocator.Instance.Resolve <ITypeRegistry>().Register(typeof(NonVirtualCar)); ServiceLocator.Instance.Resolve <ITypeRegistry>().Register(typeof(NonVirtualApple)); var apple = new FileObjectAccess(path, ServiceLocator.Instance.Resolve <ITypeRegistry>()).GetAll().Last(); Assert.IsInstanceOf <NonVirtualApple>(apple, apple.ToString()); Assert.IsFalse(apple.GetType().Name.ToLower().Contains("proxy")); Assert.AreEqual("ApplesDontHaveEngines", (apple as NonVirtualApple).Engine); var obj = new FileObjectAccess(path, ServiceLocator.Instance.Resolve <ITypeRegistry>()).GetAll().First(); Assert.IsInstanceOf <CorruptObject>(obj, obj.ToString()); var car = obj as CorruptObject; Assert.IsTrue(car.Exception.Message.Contains("virtual")); }