예제 #1
0
        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());
        }
예제 #2
0
        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"));
        }