public async Task CreateMatchRollBackWhenInsertMatchFailsSuccess() { var percentage = 12.4587; var percentageAsString = percentage.ToString(CultureInfo.InvariantCulture); var salt = "randomSalt"; var hash = "ranomdHash"; var creatorUser = new DatabaseModel.User("steamId", "name", "imageURl", null, DateTime.Today, DateTime.Today, false, null, 10); var gameMode = new DatabaseModel.GameMode { CurrentSettingId = 1, IsEnabled = true, Type = GameModeHelper.GetStringFromType(GameModeType.CoinFlip), Id = 2 }; A.CallTo(() => _fakedUserRepoService.FindAsync(creatorUser.SteamId)).Returns(creatorUser); A.CallTo(() => _fakedRandomService.GeneratePercentage()).Returns(percentageAsString); A.CallTo(() => _fakedRandomService.GenerateSalt()).Returns(salt); A.CallTo(() => _fakedHashService.CreateBase64Sha512Hash(percentageAsString, salt)).Returns(hash); A.CallTo(() => _fakedGameModeRepoSerivce.Find(GameModeHelper.GetStringFromType(GameModeType.CoinFlip))).Returns(gameMode); A.CallTo(() => _fakedCoinFlipMatchRepoService.InsertAsync(A <DatabaseModel.CoinFlip> ._, A <ITransactionWrapper> ._)).Throws <Exception>(); var itemList = new List <AssetAndDescriptionId> { new AssetAndDescriptionId { AssetId = "assetId1", DescriptionId = 1 } }; bool didFail = false; try { await _coinFlipService.CreateMatch(creatorUser.SteamId, true, itemList, _defaultSetting); } catch (Exception) { didFail = true; } Assert.True(didFail, "The method did not throw!"); A.CallTo(() => _fakedTransactionWrapper.Commit()).MustNotHaveHappened(); A.CallTo(() => _fakedTransactionWrapper.Rollback()).MustHaveHappened(); A.CallTo(() => _fakedUserRepoService.FindAsync(creatorUser.SteamId)).MustHaveHappened(); }
public async Task UserDepositItemsTransactionThrows() { _offerMinmalInfo.OfferSend.SteamOffer.ItemsToGive.Clear(); var offerTransInsertWithId = new DatabaseModel.OfferTransaction(1, 14, new decimal(196.91), true, "12347", DateTime.Today, 75); var userInsertRes = new DatabaseModel.User("userSteamId", "name", "img", "tradeLink", DateTime.Today, DateTime.Today, false, null, 1); A.CallTo(() => _fakedUserRepoService.FindAsync("userSteamId")).Returns(userInsertRes); var botLookRes = Task.FromResult(new DatabaseModel.Bot("botSteamId", "botName", 14)); A.CallTo(() => _fakedBotRepoService.FindAsync("botSteamId")).Returns(botLookRes); A.CallTo(() => _fakedOfferTranascrionRepoService.InsertAsync(A <DatabaseModel.OfferTransaction> ._, A <ITransactionWrapper> ._)) .Throws(new CantCompleteTransaction(new System.Exception())); await Assert.ThrowsAsync <CantCompleteSteamDeposit>(async() => await _offerService.DepositSteamOfferAsync(_offerMinmalInfo)); A.CallTo(() => _fakedTransactionWrapper.Commit()).MustNotHaveHappened(); A.CallTo(() => _fakedTransactionWrapper.Rollback()).MustHaveHappened(); }
/// <inheritdoc /> public void Rollback() => _transactionWrapper?.Rollback();