Пример #1
0
        public LGTokenFaker(IManageDatabase databaseManager, ILogger logger)
        {
            var random       = new Random();
            int randomNumber = random.Next();

            Bogus.Randomizer.Seed = new Random(randomNumber);

            var parentFaker      = new LGAccountFaker(databaseManager, logger);
            var parent           = parentFaker.GetOne();
            var parentRepository = new LGAccountRepository(databaseManager, new LGAccountRepositorySql(), logger);
            var parentAddResult  = parentRepository.Create(parent);

            parent = parentAddResult.Model;

            _faker = new Bogus.Faker <LGToken>()
                     .StrictMode(false)
                     .Rules((f, m) =>
            {
                m.LGTokenId   = null;
                m.LGAccountId = parent.LGAccountId;
                m.Token       = f.Lorem.Sentence(10);
                m.Created     = f.Date.Past();
                m.LastUsed    = f.Date.Past();
                m.Expires     = f.Date.Past();
            });
        }
Пример #2
0
        public LGPrivilegeFaker(IManageDatabase databaseManager, ILogger logger)
        {
            var random       = new Random();
            int randomNumber = random.Next();

            Bogus.Randomizer.Seed = new Random(randomNumber);

            var parentFaker      = new LGAccountFaker(databaseManager, logger);
            var parent           = parentFaker.GetOne();
            var parentRepository = new LGAccountRepository(databaseManager, new LGAccountRepositorySql(), logger);
            var parentAddResult  = parentRepository.Create(parent);

            parent = parentAddResult.Model;

            var featureFaker      = new LGFeatureFaker(databaseManager, logger);
            var featureFake       = featureFaker.GetOne();
            var featureRepository = new LGFeatureRepository(databaseManager, new LGFeatureRepositorySql(), logger);
            var featureFakeResult = featureRepository.Create(featureFake);

            featureFake = featureFakeResult.Model;

            var abilityFaker      = new LGAbilityFaker(databaseManager, logger);
            var abilityFake       = abilityFaker.GetOne();
            var abilityRepository = new LGAbilityRepository(databaseManager, new LGAbilityRepositorySql(), logger);
            var abilityFakeResult = abilityRepository.Create(abilityFake);

            abilityFake = abilityFakeResult.Model;

            _faker = new Bogus.Faker <LGPrivilege>()
                     .StrictMode(false)
                     .Rules((f, m) =>
            {
                m.LGPrivilegeId = null;
                m.LGAccountId   = parent.LGAccountId;
                m.Starts        = f.Date.Past();
                m.Ends          = f.Date.Past();
                m.FeatureIdRef  = featureFake.LGFeatureId;
                m.AbilityIdRef  = abilityFake.LGAbilityId;
            });
        }
Пример #3
0
        public void CreateUpdateDeleteFetch()
        {
            // file system
            var path         = "/shop/randomsilo/modern-web/backends/LoyalGuard";
            var project      = "LoyalGuard";
            var outputPath   = $"{path}/{project}.Infrastructure.Test/TestOutput/";
            var databaseFile = GetDatabase(outputPath, MethodBase.GetCurrentMethod());

            // logger
            ILogger logger = GetLogger($"{outputPath}/{MethodBase.GetCurrentMethod().ReflectedType.Name}_{MethodBase.GetCurrentMethod().Name}.log");

            // database setup

            // - context
            IDatabaseContext databaseContext = new DatabaseContext(
                $"Data Source={databaseFile}"
                , "TestDb"
                , "TestSchema"
                , $"{path}/sql/sqlite/ALL.sql"
                );

            Assert.NotNull(databaseContext);

            // - manager
            IManageDatabase databaseManager = new DatabaseManager(databaseContext);

            Assert.NotNull(databaseManager);

            // - create tables
            databaseManager.CreateDatabase();

            // - repository
            var lGAccountRepository = new LGAccountRepository(databaseManager, new LGAccountRepositorySql(), logger);

            Assert.NotNull(lGAccountRepository);

            // faker
            BrashActionResult <LGAccount> result = null;
            var lGAccountFaker = new LGAccountFaker(databaseManager, logger);

            Assert.NotNull(lGAccountFaker);

            // create
            var lGAccountCreateModel = lGAccountFaker.GetOne();

            result = lGAccountRepository.Create(lGAccountCreateModel);
            Assert.True(result.Status == BrashActionStatus.SUCCESS, result.Message);
            Assert.True(result.Model.LGAccountId > 0);

            // use model with id
            lGAccountCreateModel = result.Model;

            // update
            var lGAccountUpdateModel = lGAccountFaker.GetOne();

            lGAccountUpdateModel.LGAccountId = lGAccountCreateModel.LGAccountId;
            result = lGAccountRepository.Update(lGAccountUpdateModel);
            Assert.True(result.Status == BrashActionStatus.SUCCESS, result.Message);

            // delete
            result = lGAccountRepository.Delete(lGAccountCreateModel);
            Assert.True(result.Status == BrashActionStatus.SUCCESS, result.Message);

            // fetch

            // - make fakes
            var fakes = lGAccountFaker.GetMany(10);

            // - add fakes to database
            List <int?> ids = new List <int?>();

            foreach (var f in fakes)
            {
                result = lGAccountRepository.Create(f);

                Assert.True(result.Status == BrashActionStatus.SUCCESS, result.Message);
                Assert.True(result.Model.LGAccountId >= 0);
                ids.Add(result.Model.LGAccountId);
            }

            // - get fakes from database
            foreach (var id in ids)
            {
                var model = new LGAccount()
                {
                    LGAccountId = id
                };

                result = lGAccountRepository.Fetch(model);
                Assert.True(result.Status == BrashActionStatus.SUCCESS, result.Message);
                Assert.True(result.Model.LGAccountId >= 0);
            }
        }