public void AffiliateApplicationCreatedByBizTalkFactoryContainsDefaultConfigStore() { var affiliateApplication = AffiliateApplication.FindByName(_affiliateApplication.Name); affiliateApplication.ConfigStores.Should().NotBeEmpty(); affiliateApplication.ConfigStores.Default.Should().NotBeNull(); }
public void AffiliateApplicationNotCreatedByBizTalkFactoryDoesNotContainDefaultConfigStore() { var affiliateApplication = AffiliateApplication.FindByContact(AffiliateApplication.ANY_CONTACT_INFO).First(a => a.Contact != AffiliateApplication.DEFAULT_CONTACT_INFO); affiliateApplication.ConfigStores.Should().NotBeEmpty(); affiliateApplication.ConfigStores.Default.Should().BeNull(); }
public void FindByAnyContact() { var affiliateApplications = AffiliateApplication.FindByContact(AffiliateApplication.ANY_CONTACT_INFO).ToArray(); affiliateApplications.Should().NotBeEmpty(); affiliateApplications.Where(a => a == null).Should().BeEmpty(); }
public void FindByDefaultContact() { var affiliateApplications = AffiliateApplication.FindByContact().ToArray(); affiliateApplications.Should().HaveCountGreaterOrEqualTo(1); affiliateApplications.Should().ContainEquivalentOf(_affiliateApplication); }
public void AffiliateApplicationCreatedByBizTalkFactoryContainsDefaultConfigStore() { var affiliateApplication = AffiliateApplication.FindByName(_affiliateApplication.Name); affiliateApplication.ConfigStores.Should().NotBeEmpty(); affiliateApplication.ConfigStores.Default.Should().NotBeNull(); affiliateApplication.ConfigStores.Should().OnlyContain(kvp => kvp.Key == ConfigStoreCollection.DEFAULT_CONFIG_STORE_IDENTIFIER); }
public void AffiliateApplicationNotCreatedByBizTalkFactoryDoesNotContainDefaultConfigStore() { var affiliateApplication = AffiliateApplication.FindByContact(AffiliateApplication.ANY_CONTACT_INFO) .First(a => a.Contact != AffiliateApplication.DEFAULT_CONTACT_INFO && a.ConfigStores.Any()); affiliateApplication.ConfigStores.Default.Should().BeNull(); affiliateApplication.ConfigStores.Should().OnlyContain(kvp => kvp.Key != ConfigStoreCollection.DEFAULT_CONFIG_STORE_IDENTIFIER); }
public void DeleteThrowsIfHasMultipleConfigStores() { const string name = nameof(AffiliateApplicationFixture) + ".MultipleConfigStores"; try { var affiliateApplication = AffiliateApplication.FindByName(name) ?? AffiliateApplication.Create(name); var defaultConfigStore = new ConfigStore(affiliateApplication.Name, ConfigStoreCollection.DEFAULT_CONFIG_STORE_IDENTIFIER) { Properties = { ["key1"] = "value1" } }; Invoking(() => defaultConfigStore.Save()).Should().NotThrow(); var otherConfigStore = new ConfigStore.ConfigStoreProperties(affiliateApplication.Name, Guid.NewGuid().ToString("B")) { Properties = { ["key2"] = "value2" } }; Invoking(() => otherConfigStore.Save()).Should().NotThrow(); AffiliateApplication.FindByName(name).ConfigStores.Should().HaveCount(2); Invoking(() => affiliateApplication.Delete()) .Should().Throw<InvalidOperationException>() .WithMessage( $"To prevent any destructive effects, BizTalk.Factory will not delete an {nameof(AffiliateApplication)} that it has not created or that has other {nameof(ConfigStore)}s than the default one."); otherConfigStore.Delete(); } finally { AffiliateApplication.FindByName(name)?.Delete(); } }
public void CreateThrowsIfAlreadyExists() { Action act = () => AffiliateApplication.Create(_affiliateApplication.Name); act.Should() .Throw <ArgumentException>() .WithMessage($"{nameof(AffiliateApplication)} '{_affiliateApplication.Name}' already exists and cannot be duplicated.*"); }
public void LoadExistentNonDefaultConfigStore() { var affiliateApplication = AffiliateApplication.FindByContact(AffiliateApplication.ANY_CONTACT_INFO) .First(a => a.Contact != AffiliateApplication.DEFAULT_CONTACT_INFO && a.ConfigStores.Any()); var existentConfigStore = affiliateApplication.ConfigStores.Values.First(); existentConfigStore.Properties.Should().NotBeEmpty(); }
public void DeleteThrowsIfBizTalkFactoryDefaultContactDoesNotHaveOwnership() { var affiliateApplication = AffiliateApplication.FindByContact(AffiliateApplication.ANY_CONTACT_INFO) .First(a => !a.Name.StartsWith(nameof(AffiliateApplicationFixture)) && a.Contact != AffiliateApplication.DEFAULT_CONTACT_INFO); Invoking(() => affiliateApplication.Delete()) .Should().Throw<InvalidOperationException>() .WithMessage( $"To prevent any destructive effects, BizTalk.Factory will not delete an {nameof(AffiliateApplication)} that it has not created or that has other {nameof(ConfigStore)}s than the default one."); }
public void DeleteExistentNonDefaultConfigStoreThrows() { var affiliateApplication = AffiliateApplication.FindByContact(AffiliateApplication.ANY_CONTACT_INFO) .First(s => s.Contact != AffiliateApplication.DEFAULT_CONTACT_INFO); affiliateApplication.ConfigStores.Should().NotBeEmpty(); var configStore = affiliateApplication.ConfigStores.Values.First(); Action(() => configStore.Delete()) .Should().Throw <InvalidOperationException>() .WithMessage("Cannot delete a ConfigStore other than the default one."); }
public void Create() { const string name = nameof(AffiliateApplicationFixture) + ".Create"; try { Invoking(() => AffiliateApplication.Create(name)).Should().NotThrow(); AffiliateApplication.FindByName(name).Should().NotBeNull(); } finally { AffiliateApplication.FindByName(name)?.Delete(); } }
public void SaveExistentNonDefaultConfigStoreThrows() { var affiliateApplication = AffiliateApplication.FindByContact(AffiliateApplication.ANY_CONTACT_INFO) .First(s => s.Contact != AffiliateApplication.DEFAULT_CONTACT_INFO); affiliateApplication.ConfigStores.Should().NotBeEmpty(); var configStore = affiliateApplication.ConfigStores.Values.First(); configStore.Properties["Key1"] = "Value1"; Action(() => configStore.Save()) .Should().Throw <InvalidOperationException>() .WithMessage("Cannot save or overwrite the properties of a ConfigStore other than the default one."); }
public void Delete() { const string name = nameof(AffiliateApplicationFixture) + ".Delete"; try { var affiliateApplication = AffiliateApplication.Create(name); Action(() => affiliateApplication.Delete()).Should().NotThrow(); AffiliateApplication.FindByName(name).Should().BeNull(); } finally { AffiliateApplication.FindByName(name)?.Delete(); } }
internal ConfigStoreCollection(AffiliateApplication affiliateApplication) { if (affiliateApplication == null) { throw new ArgumentNullException(nameof(affiliateApplication)); } var mapper = new ISSOMapper2(); var applicationMappings = mapper.GetMappingsForExternalUser(affiliateApplication.Name, null); var configStoreIdentifiers = applicationMappings.Cast <ISSOMapping>() .Where(m => m.WindowsDomainName == "$ConfigStore$") .Select(m => m.WindowsUserName) // ensure the default ConfigStore identifier is in the list of configStore's id to instantiate .Union(Enumerable.Repeat(DEFAULT_CONFIG_STORE_IDENTIFIER, affiliateApplication.HasOwnership ? 1 : 0)); _configStoreDictionary = configStoreIdentifiers .Select(id => new ConfigStore(affiliateApplication.Name, id)) .ToDictionary(cs => cs.Identifier); }
public static AffiliateApplication Create( string name, string userGroup = DEFAULT_USER_GROUP_NAME, string administratorGroup = DEFAULT_ADMINISTRATOR_GROUP_NAME, string description = null ) { if (name.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(name)); } if (name.Contains(' ')) { throw new ArgumentException("Name cannot contain spaces.", nameof(name)); } if (FindByName(name) != null) { throw new ArgumentException($"{nameof(AffiliateApplication)} '{name}' already exists and cannot be duplicated.", nameof(name)); } var application = new AffiliateApplication { Name = name, AdministratorGroup = administratorGroup ?? DEFAULT_ADMINISTRATOR_GROUP_NAME, Contact = DEFAULT_CONTACT_INFO, Description = description ?? $"{name} Configuration Store", UserGroup = userGroup ?? DEFAULT_USER_GROUP_NAME }; var ssoAdmin = new ISSOAdmin(); ssoAdmin.CreateApplication( application.Name, application.Description, application.Contact, application.UserGroup, application.AdministratorGroup, SSOFlag.SSO_FLAG_APP_CONFIG_STORE | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL | SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL, 1); ssoAdmin.CreateFieldInfo(name, application.Contact, SSOFlag.SSO_FLAG_NONE); ssoAdmin.UpdateApplication(name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); return(application); }
public static AffiliateApplication Create( string name, string[] administratorGroups = null, string[] userGroups = null, string description = null) { if (name.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(name)); } if (name.Contains(' ')) { throw new ArgumentException("Name cannot contain spaces.", nameof(name)); } if (FindByName(name) != null) { throw new ArgumentException($"{nameof(AffiliateApplication)} '{name}' already exists and cannot be duplicated.", nameof(name)); } var application = new AffiliateApplication { Name = name, AdministratorGroups = administratorGroups ?? DefaultAdministratorGroups, Contact = DEFAULT_CONTACT_INFO, Description = description ?? $"{name} Configuration Store", UserGroups = userGroups ?? DefaultUserGroups }; var ssoAdmin = new ISSOAdmin(); ssoAdmin.CreateApplication( application.Name, application.Description, application.Contact, application.UserGroups.JoinGroups(), application.AdministratorGroups.JoinGroups(), SSOFlag.SSO_FLAG_APP_CONFIG_STORE | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL | SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL, 2 /* number of fields to be created */); ssoAdmin.CreateFieldInfo(name, application.Contact, SSOFlag.SSO_FLAG_NONE); ssoAdmin.CreateFieldInfo(name, DEFAULT_SETTINGS_KEY, SSOFlag.SSO_FLAG_NONE); ssoAdmin.UpdateApplication(name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED); return(application); }
public ConfigStoreFixture() { _affiliateApplication = AffiliateApplication.FindByName(nameof(ConfigStoreFixture)) ?? AffiliateApplication.Create(nameof(ConfigStoreFixture)); }
public AffiliateApplicationFixture() { _affiliateApplication = AffiliateApplication.FindByName(nameof(AffiliateApplicationFixture)) ?? AffiliateApplication.Create(nameof(AffiliateApplicationFixture)); }
public void FindByName() { var store = AffiliateApplication.FindByName(_affiliateApplication.Name); store.Should().BeEquivalentTo(_affiliateApplication); }