public async Task SubmitDraw_Succeeds_ReturnsSuccess() { // Arrange var serialNumber = SerialNumber.CreateNewSerialNumber(Guid.NewGuid().ToString()); var emailStr = $"{Guid.NewGuid().ToString()}@{Guid.NewGuid().ToString()}.com"; var dto = new SubmitDrawRequest { FirstName = Guid.NewGuid().ToString(), LastName = Guid.NewGuid().ToString(), EmailAddress = emailStr, SerialNumber = serialNumber.Serial, }; var email = new EmailAddress(emailStr); serialNumberRepositoryMock.Setup(x => x.GetSerialNumber(serialNumber.Serial)) .ReturnsAsync(() => serialNumber); drawSubmissionsServiceMock.Setup(x => x.Submit(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <EmailAddress>(), It.IsAny <SerialNumber>())) .ReturnsAsync(() => new DrawSubmission(dto.FirstName, dto.LastName, email, serialNumber)); // Act var response = await sut.SubmitDraw(dto); // Assert Assert.IsInstanceOf <OkObjectResult>(response); var payload = (response as OkObjectResult).Value; var typedPayLoad = payload as DrawSubmissionListingDto; Assert.That(typedPayLoad.FirstName, Is.EqualTo(dto.FirstName)); Assert.That(typedPayLoad.LastName, Is.EqualTo(dto.LastName)); Assert.That(typedPayLoad.SerialNumber, Is.EqualTo(dto.SerialNumber)); Assert.That(typedPayLoad.EmailAddress, Is.EqualTo(dto.EmailAddress)); }
public async Task Submit_Succeeds() { // Arrange var serial = Guid.NewGuid().ToString(); var serialNumber = SerialNumber.CreateNewSerialNumber(serial); var firstName = Guid.NewGuid().ToString(); var lastName = Guid.NewGuid().ToString(); var emailAddress = $"{Guid.NewGuid().ToString()}@{Guid.NewGuid().ToString()}.com"; // Act await sut.Submit(firstName, lastName, new EmailAddress(emailAddress), serialNumber); await Context.SaveChangesAsync(); // Assert var submission = await Context.DrawSubmissions .Include(x => x.SerialNumber) // Loads the adjacent entity to only roundtrip the database once .SingleOrDefaultAsync(); Assert.NotNull(submission); Assert.That(submission.FirstName, Is.EqualTo(firstName)); Assert.That(submission.LastName, Is.EqualTo(lastName)); Assert.That(submission.EmailAddress.Value, Is.EqualTo(emailAddress)); Assert.That(submission.SerialNumber.UsageCount, Is.EqualTo(1)); eventDispathcerMock.Verify(x => x.Publish(It.IsAny <IDomainEvent>())); }
public async Task Validate_ValidSerial_ReturnsSuccess() { var serialNumber = Guid.NewGuid().ToString(); serialNumberRepositoryMock.Setup(x => x.GetSerialNumber(serialNumber)) .ReturnsAsync(() => SerialNumber.CreateNewSerialNumber(serialNumber)); var response = await sut.Validate(serialNumber); Assert.IsInstanceOf <OkObjectResult>(response); var payload = UnWrapResponse(response); Assert.IsTrue(payload.IsValid); }
public async Task GetSubmissions_WithNumberOfItems_GetsCorrectPageNumber(int numberOfItems, int expectedPages) { var submissions = Enumerable.Range(0, numberOfItems) .Select(indexer => new DrawSubmission( firstName: Guid.NewGuid().ToString(), lastName: Guid.NewGuid().ToString(), emailAddress: new EmailAddress($"{Guid.NewGuid().ToString()}@{Guid.NewGuid().ToString()}.com"), serialNumber: SerialNumber.CreateNewSerialNumber(Guid.NewGuid().ToString()))); await Context.DrawSubmissions.AddRangeAsync(submissions); await Context.SaveChangesAsync(); var result = await sut.GetSubmissions(1); Assert.That(result.NumberOfPages, Is.EqualTo(expectedPages)); }
public async Task Validate_ExeededLimit_ReturnsFailedResult() { var serialNumber = Guid.NewGuid().ToString(); serialNumberRepositoryMock.Setup(x => x.GetSerialNumber(serialNumber)) .ReturnsAsync(() => { var serial = SerialNumber.CreateNewSerialNumber(serialNumber); serial.Use(); serial.Use(); return(serial); }); var response = await sut.Validate(serialNumber); Assert.IsInstanceOf <OkObjectResult>(response); var payload = UnWrapResponse(response); Assert.IsFalse(payload.IsValid); }
public void Setup() { sut = SerialNumber.CreateNewSerialNumber(Guid.NewGuid().ToString()); }