Exemplo n.º 1
0
        public void AffiliateApplicationCreatedByBizTalkFactoryContainsDefaultConfigStore()
        {
            var affiliateApplication = AffiliateApplication.FindByName(_affiliateApplication.Name);

            affiliateApplication.ConfigStores.Should().NotBeEmpty();
            affiliateApplication.ConfigStores.Default.Should().NotBeNull();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        public void FindByAnyContact()
        {
            var affiliateApplications = AffiliateApplication.FindByContact(AffiliateApplication.ANY_CONTACT_INFO).ToArray();

            affiliateApplications.Should().NotBeEmpty();
            affiliateApplications.Where(a => a == null).Should().BeEmpty();
        }
Exemplo n.º 4
0
        public void FindByDefaultContact()
        {
            var affiliateApplications = AffiliateApplication.FindByContact().ToArray();

            affiliateApplications.Should().HaveCountGreaterOrEqualTo(1);
            affiliateApplications.Should().ContainEquivalentOf(_affiliateApplication);
        }
Exemplo n.º 5
0
		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);
		}
Exemplo n.º 6
0
		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);
		}
Exemplo n.º 7
0
		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();
			}
		}
Exemplo n.º 8
0
        public void CreateThrowsIfAlreadyExists()
        {
            Action act = () => AffiliateApplication.Create(_affiliateApplication.Name);

            act.Should()
            .Throw <ArgumentException>()
            .WithMessage($"{nameof(AffiliateApplication)} '{_affiliateApplication.Name}' already exists and cannot be duplicated.*");
        }
Exemplo n.º 9
0
        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();
        }
Exemplo n.º 10
0
		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.");
        }
Exemplo n.º 12
0
		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.");
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 16
0
        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));
 }
Exemplo n.º 19
0
		public AffiliateApplicationFixture()
		{
			_affiliateApplication = AffiliateApplication.FindByName(nameof(AffiliateApplicationFixture)) ?? AffiliateApplication.Create(nameof(AffiliateApplicationFixture));
		}
Exemplo n.º 20
0
		public void FindByName()
		{
			var store = AffiliateApplication.FindByName(_affiliateApplication.Name);
			store.Should().BeEquivalentTo(_affiliateApplication);
		}