private static AchievementType CreateAchievementType(
            string name,
            string accountGuid,
            bool includeChildAccounts = false,
            bool isActive             = true,
            int maxAllowed            = 1,
            bool allowOver            = false,
            int numberToAccumulate    = 1)
        {
            var achievement = new AchievementType
            {
                Name     = name,
                IsActive = isActive,
                ComponentEntityTypeId     = EntityTypeCache.GetId(ComponentEntityTypeName) ?? 0,
                MaxAccomplishmentsAllowed = maxAllowed,
                AllowOverAchievement      = allowOver,
                ComponentConfigJson       = "{ \"GivingToAccountAchievement\": \"null\" }",
                ForeignKey = KEY
            };

            _achievementTypeService.Add(achievement);
            _rockContext.SaveChanges(true);

            achievement.LoadAttributes();
            achievement.SetAttributeValue(Rock.Achievement.Component.GivingToAccountAchievement.AttributeKey.IncludeChildFinancialAccounts, includeChildAccounts.ToString());
            achievement.SetAttributeValue(Rock.Achievement.Component.GivingToAccountAchievement.AttributeKey.FinancialAccount, accountGuid);
            achievement.SetAttributeValue(Rock.Achievement.Component.GivingToAccountAchievement.AttributeKey.StartDateTime, _startDate.ToISO8601DateString());
            achievement.SetAttributeValue(Rock.Achievement.Component.GivingToAccountAchievement.AttributeKey.EndDateTime, _endDate.ToISO8601DateString());
            achievement.SetAttributeValue(Rock.Achievement.Component.GivingToAccountAchievement.AttributeKey.NumberToAccumulate, numberToAccumulate.ToString());
            achievement.SaveAttributeValues();

            return(achievement);
        }
        /// <summary>
        /// Creates the achievement type data.
        /// </summary>
        private static void CreateAchievementTypeData()
        {
            var achievementType = new AchievementType
            {
                Name     = "Test Achievement",
                IsActive = true,
                ComponentEntityTypeId     = EntityTypeCache.GetId(ComponentEntityTypeName) ?? 0,
                MaxAccomplishmentsAllowed = 1,
                AllowOverAchievement      = false,
                ComponentConfigJson       = "{ \"InteractionChannelComponent\": \"" +
                                            _interactionComponent.InteractionChannel.Guid + "|" +
                                            _interactionComponent.Guid + "\" }"
            };

            _achievementTypeService.Add(achievementType);
            _rockContext.SaveChanges(true);

            achievementType.LoadAttributes();
            achievementType.SetAttributeValue(Rock.Achievement.Component.InteractionSourcedAccumulativeAchievement.AttributeKey.NumberToAccumulate, NUMBER_TO_ACHIEVE.ToString());
            achievementType.SaveAttributeValues();

            _achievementTypeId = achievementType.Id;
        }