public void ResolveItem_NoId_ThrowsException()
        {
            //Arrange 

            var config = new SitecoreTypeConfiguration();
            config.Type = typeof (StubClassNoId);

            config.AddProperty(
                new SitecoreFieldConfiguration()
                {
                    PropertyInfo = typeof (StubClassNoId).GetProperty("Field")
                });

            var instance = new StubClassNoId();

            var database = Factory.GetDatabase("master");



            //Act
            var result = config.ResolveItem(instance, database);

            //Assert


        }
        public void ResolveItem_NoId_ThrowsException()
        {
            //Arrange 
            using (Db database = new Db
            {
                new Sitecore.FakeDb.DbItem("TestItem")
            })
            {
                var config = new SitecoreTypeConfiguration();
                config.Type = typeof(StubClassNoId);

                config.AddProperty(
                    new SitecoreFieldConfiguration()
                    {
                        PropertyInfo = typeof(StubClassNoId).GetProperty("Field")
                    });

                var instance = new StubClassNoId();


                //Act
                Assert.Throws<NotSupportedException>(() => config.ResolveItem(instance, database.Database));

                //Assert
            }

        }
        public void ResolveItem()
        {
            //Arrange 

            var config = new SitecoreTypeConfiguration();
            config.ItemUriConfig = new SitecoreInfoConfiguration();
            config.ItemUriConfig.PropertyInfo = typeof(StubClass).GetProperty("ItemUri");
            
            //TODO get a proper items
            string path = "/sitecore/content/Tests/DataMappers/SitecoreItemMapper/Target";
            var database = Factory.GetDatabase("master");
            var expected = database.GetItem(path);

            var instance = new StubClass();
            instance.ItemUri = new ItemUri(expected.ID, expected.Language, expected.Version, expected.Database);


            //Act
            var result = config.ResolveItem(instance, database);

            //Assert
            Assert.AreEqual(expected.ID, result.ID);
            Assert.AreEqual(expected.Version, result.Version);
            Assert.AreEqual(expected.Language, result.Language);


        }
        public void ResolveItem()
        {
            //Arrange 

            using (Db database = new Db
            {
                new Sitecore.FakeDb.DbItem("TestItem")
            })
            {
                var config = new SitecoreTypeConfiguration();
                config.ItemUriConfig = new SitecoreInfoConfiguration();
                config.ItemUriConfig.PropertyInfo = typeof(StubClass).GetProperty("ItemUri");

                string path = "/sitecore/content/TestItem";
                var expected = database.GetItem(path);

                var instance = new StubClass();
                instance.ItemUri = new ItemUri(expected.ID, expected.Language, expected.Version, expected.Database);

                //Act
                var result = config.ResolveItem(instance, database.Database);

                //Assert
                Assert.AreEqual(expected.ID, result.ID);
                Assert.AreEqual(expected.Version, result.Version);
                Assert.AreEqual(expected.Language, result.Language);
            }

        }