public void MapToProperty_GetItemByPathInferType_ReturnsItem()
{
//Assign
var config = new SitecoreNodeConfiguration();
var context = Context.Create(Utilities.CreateStandardResolver());
var mapper = new SitecoreNodeMapper();
var language = LanguageManager.GetLanguage("en");
context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration"));
mapper.Setup(new DataMapperResolverArgs(context, config));
var obj = new Stub();
var source = Database.GetItem("/sitecore/content/Tests/DataMappers/SitecoreNodeMapper/Source", language);
var target = Database.GetItem("/sitecore/content/Tests/DataMappers/SitecoreNodeMapper/Target", language);
var service = Substitute.For<ISitecoreService>();
var itemVersionHandler = Substitute.For<IItemVersionHandler>();
itemVersionHandler.VersionCountEnabledAndHasVersions(Arg.Any<Item>()).Returns(true);
service.ItemVersionHandler.Returns(itemVersionHandler);
var expected = new StubMapped();
config.PropertyInfo = typeof(Stub).GetProperty("StubMapped");
config.Path = "/sitecore/content/Tests/DataMappers/SitecoreNodeMapper/Target";
config.InferType = true;
service.CreateType(
typeof(StubMapped),
Arg.Is<Item>(x => x.Paths.FullPath == target.Paths.FullPath && x.Language == language),
false,
true, null).Returns(expected);
var mappingContext = new SitecoreDataMappingContext(obj, source, service);
//Act
var result = mapper.MapToProperty(mappingContext);
//Assert
Assert.AreEqual(expected, result);
}