public void SetValue_UpdatesWithNewFile()
        {
            //Assign
            Guid id = new Guid("{B89EA3C6-C947-44AF-9AEF-7EF89CEB0A4B}");
            Item item = _db.GetItem(new ID(_itemId));

            File file = new File();
            file.Id = id;

            SitecoreProperty property = new SitecoreProperty()
            {
                Attribute = new SitecoreFieldAttribute(),
                Property = new FakePropertyInfo(typeof(File), "File")
            };
            _handler.ConfigureDataHandler(property);

            using (new SecurityDisabler())
            {
                item.Editing.BeginEdit();

                //Act
                _handler.SetValue(item, file, null);

                //Assert
                FileField field = new FileField(item.Fields["File"]);
                Assert.AreEqual(id, field.MediaID.Guid);
                Assert.AreEqual("/~/media/Files/SimpleTextFile2.ashx", field.Src);

                item.Editing.CancelEdit();
            }

        }
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {

            var itemField = item.Fields[FieldName];

            if (itemField == null) return null;

            FileField field = new FileField(itemField);
            File file = new File();
            file.Src = field.Src;
            file.Id = field.MediaID.Guid;

            return file;
        }
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {

            var itemField = base.GetField(item);

            if (itemField == null) return null;

            FileField field = new FileField(itemField);
            File file = new File();
            if (field.MediaItem != null)
                file.Src = MediaManager.GetMediaUrl(field.MediaItem);
            file.Id = field.MediaID.Guid;

            return file;
        }
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {

            var itemField = base.GetField(item);

            if (itemField == null) return null;

            FileField field = new FileField(itemField);
            File file = new File();
            if (field.MediaItem != null)
            {
                MediaItem mediaItem = new MediaItem(field.MediaItem);

                file.Src = HttpUtility.UrlPathEncode(MediaManager.GetMediaUrl(field.MediaItem));
                file.Size = mediaItem.Size;
                file.Title = mediaItem.Title;
                file.Extension = mediaItem.Extension;
            }
            file.Id = field.MediaID.Guid;

            return file;
        }
        public void GetItem_Test1()
        {

            //Assign 
            GeneralFluentFixtureNS.BasicTemplate test = null;

            //Act
            using (new SecurityDisabler())
            {
                test = _sitecore.GetItem<GeneralFluentFixtureNS.BasicTemplate>("/sitecore/content/Configuration/Fluent/GeneralFluent/GetItemTest1");
            }
            var getTestItem1 = _db.GetItem("/sitecore/content/Configuration/Fluent/GeneralFluent/GetItemTest1");
            //Assert

            #region SitecoreId

            Assert.AreEqual(getTestItem1.ID.Guid, test.Id);

            #endregion

            #region Fields
            #region SimpleTypes

            Assert.IsTrue(test.Checkbox);

            Assert.AreEqual(new DateTime(2011, 05, 01), test.Date);

            Assert.AreEqual(new DateTime(2011, 06, 01, 06, 30, 00), test.DateTime);


            var file=new File(){
                    Id = new Guid("{368A358E-5835-458B-AFE6-BA5F80334F5A}"),
                    Src ="~/media/Files/SimpleTextFile.ashx"
                };
            Assert.AreEqual(file.Id, test.File.Id);
            Assert.AreEqual(file.Src, test.File.Src);

            var image = new Image()
            {
                Alt = "Alternate Text  Test",
                Border = "",
                Class = "",
                Height = 540,
                HSpace = 50,
                MediaId = new Guid("{223EEAE5-DF4C-4E30-95AC-17BE2F00E2CD}"),
                Src = "~/media/Files/Kitten1.ashx",
                VSpace = 60,
                Width = 720,
            };
            Assert.AreEqual(image.Alt, test.Image.Alt);
            Assert.AreEqual(image.Border, test.Image.Border);
            Assert.AreEqual(image.Class, test.Image.Class);
            Assert.AreEqual(image.Height, test.Image.Height);
            Assert.AreEqual(image.HSpace, test.Image.HSpace);
            Assert.AreEqual(image.MediaId, test.Image.MediaId);
            Assert.AreEqual(image.Src, test.Image.Src);
            Assert.AreEqual(image.VSpace, test.Image.VSpace);
            Assert.AreEqual(image.Width, test.Image.Width);

            Assert.AreEqual(456, test.Integer);

            Assert.AreEqual(456f, test.Float);

            Assert.AreEqual(456d, test.Double);

            Assert.AreEqual(456m, test.Decimal);

            Assert.AreEqual("Multi Line Text Test", test.MultiLineText);

            Assert.AreEqual(789, test.Number);

            Assert.AreEqual("Password Test", test.Password);

            Assert.AreEqual("<p>Rich Text Test</p>", test.RichText.Trim());

            Assert.AreEqual("Single Line Text Test", test.SingleLineText);

            #endregion

            #region List Types

            Assert.AreEqual(2, test.CheckList.Count());
            Assert.AreEqual(_check1.ID.Guid, test.CheckList.First().Id);
            Assert.AreEqual(_check2.ID.Guid, test.CheckList.Last().Id);

            Assert.AreEqual(TestEnum.Test1, test.DropList);

            Assert.AreEqual(_test3.ID.Guid, test.GroupedDropLink.Id);

            Assert.AreEqual(TestEnum.Test3, test.GroupedDropList);

            Assert.AreEqual(_multiList1.ID.Guid, test.MultiList.First().Id);

            Assert.AreEqual(_treeList1.ID.Guid, test.Treelist.First().Id);

            Assert.AreEqual(_treeList2.ID.Guid, test.TreeListEx.First().Id);

            #endregion
            #region Link Types

            Assert.AreEqual(_link1.ID.Guid, test.DropLink.Id);

            Assert.AreEqual(_link2.ID.Guid, test.DropTree.Id);

            var link = new Link(){
                Anchor = "",
                Class = "Style Class Test",
                Target = "_blank",
                TargetId = Guid.Empty,
                Text = "Link Description Test",
                Title = "Alternate Text Test",
                Url = "http://www.google.com"
            };
            Assert.AreEqual(link.Anchor, test.GeneralLink.Anchor);
            Assert.AreEqual(link.Class, test.GeneralLink.Class);
            Assert.AreEqual(link.Target, test.GeneralLink.Target);
            Assert.AreEqual(link.TargetId, test.GeneralLink.TargetId);
            Assert.AreEqual(link.Text, test.GeneralLink.Text);
            Assert.AreEqual(link.Title, test.GeneralLink.Title);
            Assert.AreEqual(link.Url, test.GeneralLink.Url);


            #endregion

            #region Developer Types

            Assert.AreEqual("/sitecore/shell/Themes/Standard/Applications/48x48/about.png", test.Icon);

            Assert.AreEqual(TriState.No, test.TriState);

            #endregion

            #region System Types

            Console.WriteLine("Attachment not tested");

            #endregion
            #endregion

            #region SitecoreInfo

            Assert.AreEqual(getTestItem1.Paths.ContentPath, test.ContentPath);

            Assert.AreEqual(getTestItem1.DisplayName, test.DisplayName);

            Assert.AreEqual(getTestItem1.Paths.FullPath, test.FullPath);

            Assert.AreEqual(getTestItem1.Key, test.Key);

            Console.WriteLine("Not test media URL");

            Assert.AreEqual(getTestItem1.Paths.Path, test.Path);

            Assert.AreEqual(getTestItem1.TemplateID.Guid, test.TemplateId);

            Assert.AreEqual(getTestItem1.TemplateName, test.TemplateName);

            Assert.AreEqual(LinkManager.GetItemUrl(getTestItem1), test.Url);

            Assert.AreEqual(getTestItem1.Version.Number, test.Version);

            #endregion

            #region SitecoreChildren

            Assert.AreEqual(getTestItem1.Children.Count, test.Children.Count());
            Assert.AreEqual(getTestItem1.Children.First().ID.Guid, test.Children.First().Id);

            #endregion

            #region SitecoreParent

            Assert.AreEqual(getTestItem1.ParentID.Guid, test.Parent.Id);

            #endregion

            #region SitecoreQuery

            //we have to use the security disabler because we are outside of an ASP.NET context
            //if you do this without the disabler the role manager throws an exception
            using (new SecurityDisabler())
            {
                Assert.AreEqual(3, test.Query.Count());
                Assert.AreEqual(_query1.ID.Guid, test.Query.First().Id);
                Assert.AreEqual(_query2.ID.Guid, test.Query.Skip(1).First().Id);
            }
            #endregion

        }
        public void SetValue_EmptyGuid_BlanksField()
        {
            //Assign
            Guid id = Guid.Empty;
            Item item = _db.GetItem(new ID(_itemId));

            File file = new File();
            file.Id = id;

            SitecoreProperty property = new SitecoreProperty()
            {
                Attribute = new SitecoreFieldAttribute(),
                Property = new FakePropertyInfo(typeof(File), "File")
            };

            _handler.ConfigureDataHandler(property);

            using (new SecurityDisabler())
            {
                item.Editing.BeginEdit();

                //Act
                _handler.SetValue( item, file, null);

                //Assert
                FileField field = new FileField(item.Fields["File"]);
                Assert.AreEqual(null, field.MediaItem);
                Assert.AreEqual(string.Empty, field.Src);

                item.Editing.CancelEdit();
            }

        }
        public void SetValue_NoField_DoesNothing()
        {
            //Assign
            Guid id = new Guid("{B89EA3C6-C947-44AF-9AEF-7EF89CEB0A4B}");
            Item item = _db.GetItem(new ID(_itemId));

            File file = new File();
            file.Id = id;

            SitecoreProperty property = new SitecoreProperty()
            {
                Attribute = new SitecoreFieldAttribute(),
                Property = new FakePropertyInfo(typeof(File), "NoField")
            };
            _handler.ConfigureDataHandler(property);

           

                //Act
                _handler.SetValue(item, file, null);

                //Assert
               //Does nothing but shouldn't error

        }