public async Task CreateChallengeAsync_ShouldBeOfTypeValidationResultWithErrors() { // Arrange TestMock.ChallengePayoutStrategy.Setup(payout => payout.GetChallengePayout(It.IsAny <ChallengePayoutEntries>(), It.IsAny <EntryFee>())).Verifiable(); TestMock.ChallengePayoutFactory.Setup(payout => payout.CreateInstance()).Returns(TestMock.ChallengePayoutStrategy.Object).Verifiable(); var service = new ChallengeService(TestMock.ChallengePayoutFactory.Object, TestMock.ChallengeRepository.Object); var bucket = new ChallengePayoutBucket(ChallengePayoutBucketPrize.Consolation, ChallengePayoutBucketSize.Individual); var buckets = new ChallengePayoutBuckets( new List <ChallengePayoutBucket> { bucket }); var payoutEntries = new ChallengePayoutEntries(buckets); // Act var result = await service.CreateChallengeAsync(new ChallengeId(), payoutEntries, new EntryFee(5000, CurrencyType.Token)); // Assert result.Should().BeOfType <DomainValidationResult <IChallenge> >(); result.Errors.Should().NotBeEmpty(); TestMock.ChallengePayoutStrategy.Verify(payout => payout.GetChallengePayout(It.IsAny <ChallengePayoutEntries>(), It.IsAny <EntryFee>()), Times.Once); TestMock.ChallengePayoutFactory.Verify(payout => payout.CreateInstance(), Times.Once); }
public async Task <ActionResult <Challenge> > CreateChallenge([FromBody] Challenge toCreate) { try { toCreate = await _challengeService.CreateChallengeAsync(toCreate); } catch (Exception e) { return(BadRequest(e.Message)); } return(Ok(toCreate)); }