Esempio n. 1
0
        public async Task CommitRollbackUnitOfWork1()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var set        = await unitOfWork.CreateSet <Account>();

            var account = new Account {
                Email = this.UniqueEmail, Name = "misha"
            };

            account.EnsureIdentity();

            set.Add(account.Id, account);

            await unitOfWork.Commit();

            var set1 = await unitOfWork.CreateSet <Account>();

            var count = set1.Count;

            var account1 = new Account {
                Email = this.UniqueEmail, Name = "misha"
            };

            account1.EnsureIdentity();

            set1.Add(account1.Id, account1);

            await unitOfWork.Rollback();

            var set3 = await unitOfWork.CreateSet <Account>();

            Assert.AreEqual(count, set3.Count);
        }
Esempio n. 2
0
        public async Task CreateUnitOfWork()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var set        = await unitOfWork.CreateSet <Account>();

            Assert.IsNotNull(set);
        }
Esempio n. 3
0
        public async Task EventRelationTypeAllRepository()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var repo       = new Repository <EventRelationType>(unitOfWork);

            var eventRelationTypes = await repo.GetFiltered(n => true);

            Assert.AreEqual(3, eventRelationTypes.Count());
        }
Esempio n. 4
0
        public async Task AlgorithmTypeAllRepository()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var repo       = new Repository <AlgorithmType>(unitOfWork);

            var algorithmTypes = await repo.GetFiltered(n => true);

            Assert.AreEqual(2, algorithmTypes.Count());
        }
Esempio n. 5
0
        public async Task CurrencyTypeRepository()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var repo       = new Repository <CurrencyType>(unitOfWork);

            var currencyType = await repo.GetBy(n => n.Name == CurrencyType.Reputation);

            Assert.AreEqual(CurrencyType.Reputation, currencyType.Name);
        }
Esempio n. 6
0
        public async Task FillByOneTypeUnitOfWork()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var set        = await unitOfWork.CreateSet <Account>();

            var account = new Account();

            account.EnsureIdentity();

            set.Add(account.Id, account);

            Assert.AreEqual(1, set.Count);
        }
Esempio n. 7
0
        public async Task AlgorithmTypeRepository()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var repo       = new Repository <AlgorithmType>(unitOfWork);

            var algorithmType = await repo.GetBy(n => n.Name == AlgorithmType.Linear);

            Assert.AreEqual(AlgorithmType.Linear, algorithmType.Name);

            algorithmType = await repo.GetBy(n => n.Name == AlgorithmType.Exponential);

            Assert.AreEqual(AlgorithmType.Exponential, algorithmType.Name);
        }
Esempio n. 8
0
        public async Task TestByRelationsUnitOfWork()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var set        = await unitOfWork.CreateSet <Account>();

            var set2 = await unitOfWork.CreateSet <Account>();

            var account = new Account();

            account.EnsureIdentity();

            set.Add(account.Id, account);

            Assert.AreEqual(set2.Count, set.Count);
        }
Esempio n. 9
0
        public async Task ScopeableUnitOfWorkFactory()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var f          = new ScopeableUnitOfWorkFactory(unitOfWork);
            var repo       = new Repository <EventRelationType>(unitOfWork);

            var count = (await repo.GetFiltered(x => true)).Count();

            using (f.Create())
            {
                await repo.Add(new EventRelationType { Name = "x1" });
            }

            Assert.AreEqual(count + 1, (await repo.GetFiltered(x => true)).Count());
        }
Esempio n. 10
0
        public async Task ScopeableUnitOfWorkFactoryEx()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var f          = new ScopeableUnitOfWorkFactory(unitOfWork);
            var repo       = new Repository <EventRelationType>(unitOfWork);

            var count = (await repo.GetFiltered(x => true)).Count();

            using (new InmemoryUnitOfWork())
            {
                using (f.Create())
                {
                    await repo.Add(new EventRelationType { Name = string.Empty });
                }
            }
        }
Esempio n. 11
0
        public async Task CommitByRelationsUnitOfWork()
        {
            var unitOfWork = new InmemoryUnitOfWork();
            var set        = await unitOfWork.CreateSet <Account>();

            var account = new Account {
                Email = this.UniqueEmail, Name = "misha"
            };

            account.EnsureIdentity();

            set.Add(account.Id, account);

            var count = set.Count;

            await unitOfWork.Commit();

            Assert.AreEqual(count, set.Count);
        }
Esempio n. 12
0
        public void Initialize()
        {
            Factory <IValidator> .SetCurrent(new DataAnnotationsEntityValidatorFactory());

            Factory <ILogger> .SetCurrent(new MockLoggerFactory());

            Factory <IBinarySerializer> .SetCurrent(new NetBinarySerializerFactory());

            Factory <IEmailAddressValidator> .SetCurrent(new RegexEmailAddressValidatorFactory());

            var uow = new InmemoryUnitOfWork();

            _accountingService = new AccountingService(
                new Repository <Account>(uow),
                new Repository <CurrencyType>(uow),
                new Repository <AccountBalance>(uow),
                new Repository <AccountLogin>(uow),
                new Repository <AccountSetAccounts>(uow),
                new AccountsFactory(
                    new Repository <Account>(uow),
                    new Repository <CurrencyType>(uow),
                    new Repository <AccountBalance>(uow),
                    new Repository <AccountLogin>(uow),
                    new Repository <AccountSet>(uow),
                    new Repository <AccountSetAccounts>(uow),
                    new ScopeableUnitOfWorkFactory(uow)));

            _betsService = new BetsService(
                new Repository <Bet>(uow),
                new Repository <Account>(uow),
                new Repository <Event>(uow),
                new Repository <OutcomesType>(uow),
                new Repository <CurrencyType>(uow),
                new Repository <EventBetCondition>(uow),
                new Repository <BetRateAlgorithm>(uow),
                new BetsFactory(
                    new Repository <Bet>(uow),
                    new Repository <EventBetCondition>(uow),
                    new Repository <EventRelationType>(uow),
                    new Repository <CurrencyType>(uow),
                    new Repository <AlgorithmType>(uow),
                    new Repository <AccountSetAccounts>(uow),
                    new Repository <BetRateAlgorithm>(uow),
                    new ScopeableUnitOfWorkFactory(uow))
                );

            _eventsService = new EventsService(
                new Repository <Account>(uow),
                new Repository <AccountSet>(uow),
                new Repository <EventRelationType>(uow),
                new Repository <CurrencyType>(uow),
                new Repository <AlgorithmType>(uow),
                new Repository <Event>(uow),
                new Repository <EventCondition>(uow),
                new EventsFactory(
                    new Repository <Event>(uow),
                    new Repository <EventCondition>(uow),
                    new Repository <BetRateAlgorithm>(uow),
                    new Repository <EventBetCondition>(uow),
                    new ScopeableUnitOfWorkFactory(uow)),
                _accountingService,
                _betsService,
                new ScopeableUnitOfWorkFactory(uow));
        }