Exemplo n.º 1
0
        public async Task ShouldBeAbleToInsertSelectAndDeleteAccount()
        {
            var login = new Login
            {
                Email        = $"{Guid.NewGuid().ToString()}@mailinator.com",
                PasswordHash = Guid.NewGuid().ToString()
            };

            var returnedLogin = await Db.InsertLogin(connectionString, login);

            var account = new Account
            {
                LoginId     = returnedLogin.LoginId,
                AccountName = Guid.NewGuid().ToString()
            };

            var returnedAccount = await Db.InsertAccount(connectionString, account);

            Assert.Equal(account.LoginId, returnedAccount.LoginId);
            Assert.Equal(account.AccountName, returnedAccount.AccountName);
            Assert.True(returnedAccount.AccountId > 0);

            {
                var accounts = await Db.AccountByLogin(connectionString, returnedLogin);

                Assert.Collection(accounts,
                                  x => Assert.Equal(returnedAccount.AccountId, x.AccountId));
            }

            {
                var singleAccount = await Db.AccountById(connectionString, returnedAccount.AccountId);

                Assert.True(singleAccount.HasValue);
                Assert.Equal(returnedAccount.AccountId, singleAccount.Value.AccountId);
            }

            await Db.DeleteAccount(connectionString, returnedAccount);

            {
                var accounts = await Db.AccountByLogin(connectionString, returnedLogin);

                Assert.Empty(accounts);
            }
        }