public static void TestValue(EntityType eType, Field field, Field secureIdField, Func <string, string> encrypter, string password)
        {
            IEntity e = null;

            // Stop the normal save trigger running when we set up the fields.
            using (var scope = Factory.Current.BeginLifetimeScope(builder => builder.RegisterType <DisabledSaveHelper>().As <ISecuredDataSaveHelper>()))
                using (Factory.SetCurrentScope(scope))
                {
                    // Set
                    e = Entity.Create(eType);

                    e.SetField(field, encrypter(password));
                    e.Save();
                }

            SecureDataUpgradeHelper.Upgrade("EDC");

            e = Entity.Get(e.Id);

            Assert.That(e.GetField <string>(field), Is.Not.EqualTo(password));

            var secureId = e.GetField <Guid?>(secureIdField);

            Assert.That(secureId, Is.Not.Null);

            var savedPassword = Factory.SecuredData.Read((Guid)secureId);

            Assert.That(savedPassword, Is.EqualTo(password));
        }
        public static void TestNull(EntityType eType, Field field, Field secureIdField)
        {
            IEntity e = null;

            // Set
            e = Entity.Create(eType);
            e.Save();

            SecureDataUpgradeHelper.Upgrade("EDC");

            e = Entity.Get(e.Id);

            Assert.That(e.GetField <string>(field), Is.Null);

            var secureId = e.GetField <Guid?>(secureIdField);

            Assert.That(secureId, Is.Null);
        }
        public void OAuthUpgrade()
        {
            var oip       = new OidcIdentityProvider();
            var oldSecret = "Test" + DateTime.UtcNow.Ticks;

            oip.OidcClientSecret = _crypto.EncryptAndEncode(oldSecret);

            using (var scope = Factory.Current.BeginLifetimeScope(builder => builder.RegisterType <SecuredDataSaveHelper.DisabledSaveHelper>().As <ISecuredDataSaveHelper>()))
                using (Factory.SetCurrentScope(scope))
                {
                    oip.Save();
                }

            SecureDataUpgradeHelper.Upgrade("EDC");

            var secureId = oip.OidcClientSecretSecureId;

            Assert.That(secureId, Is.Not.Null);
            var secret = Factory.SecuredData.Read((Guid)secureId);

            Assert.That(secret, Is.EqualTo(oldSecret));
        }
        public void TenantEmailServerSettingUpgrade()
        {
            var emailSettings = new TenantEmailSetting();
            var oldSecret     = "Test" + DateTime.UtcNow.Ticks;

            emailSettings.SmtpPassword = _crypto.EncryptAndEncode(oldSecret);

            using (var scope = Factory.Current.BeginLifetimeScope(builder => builder.RegisterType <SecuredDataSaveHelper.DisabledSaveHelper>().As <ISecuredDataSaveHelper>()))
                using (Factory.SetCurrentScope(scope))
                {
                    emailSettings.Save();
                }

            SecureDataUpgradeHelper.Upgrade("EDC");

            var secureId = emailSettings.SmtpPasswordSecureId;

            Assert.That(secureId, Is.Not.Null);
            var secret = Factory.SecuredData.Read((Guid)secureId);

            Assert.That(secret, Is.EqualTo(oldSecret));
        }