public void GetDatasources_LocationSetByRelativePath_ShouldReturnSourcesFromSettingItem([Frozen] ISettingsProvider settingsProvider, [Greedy] ItemDatasourceProvider provider, string name, string contextItemName, Db db, string settingItemName, Item item, string sourceRootName) { var contextItemId = ID.NewID; var contextDbItem = new DbItem(contextItemName.Replace("-", String.Empty), contextItemId); var rootName = sourceRootName.Replace("-", string.Empty); var sourceRoot = new DbItem(rootName); contextDbItem.Add(sourceRoot); db.Add(contextDbItem); provider.Database = db.Database; var settingId = ID.NewID; var settingDbItem = new DbItem(settingItemName.Replace("-", String.Empty), settingId, Templates.DatasourceConfiguration.ID) { new DbField(Templates.DatasourceConfiguration.Fields.DatasourceLocation) { { "en", $"./{rootName}" } } }; var contextItem = db.GetItem(contextItemId); db.Add(settingDbItem); var sourceRootItem = db.GetItem(sourceRoot.ID); var settingItem = db.GetItem(settingId); settingsProvider.GetSettingItem(Arg.Any <string>(), Arg.Any <Item>()).Returns(settingItem); var sources = provider.GetDatasources(name, contextItem); sources.Should().NotBeNull(); sources.Should().Contain(sourceRootItem); }
public void GetDatasources_ShouldReturnSourcesFromSettingItem([Frozen] ISettingsProvider settingsProvider, [Greedy] ItemDatasourceProvider provider, string name, Item contextItem, Db db, string settingItemName, Item item, DbItem sourceRoot) { provider.Database = db.Database; var settingId = ID.NewID; db.Add(new DbItem(settingItemName, settingId, Templates.DatasourceConfiguration.ID) { new DbField(Templates.DatasourceConfiguration.Fields.DatasourceLocation) { { "en", sourceRoot.ID.ToString() } } }); db.Add(sourceRoot); var sourceRootItem = db.GetItem(sourceRoot.ID); var settingItem = db.GetItem(settingId); settingsProvider.GetSettingItem(Arg.Any <string>(), Arg.Any <Item>()).Returns(settingItem); var sources = provider.GetDatasources(name, item); sources.Should().NotBeNull(); sources.Should().Contain(sourceRootItem); }