public async Task CreateBestelling_ShouldReturn201StatusCode() { // Arrange var klant = new KlantBuilder().SetDummy().SetId(10).SetEmail("*****@*****.**").Create(); var bestelling = new Bestelling() { ContactInfo = new ContactInfo(), Afleveradres = new Afleveradres(), BestelRegels = new List <BestelRegel>() }; _jwtHelperMock.Setup(h => h.GetEmail(It.IsAny <HttpContext>())).Returns(klant.Email); _klantDataMapperMock.Setup(k => k.GetByEmail(klant.Email)).Returns(klant); _commandPublisherMock.Setup(repo => repo.Publish <long>(It.Is <PlaatsBestellingCommand>(c => c.RoutingKey == NameConstants.BestelServicePlaatsBestellingCommandQueue && c.Bestelling.Klantnummer == klant.Id ))).ReturnsAsync(42); // Act var result = await _target.CreateBestelling(bestelling); // Assert _commandPublisherMock.VerifyAll(); _klantDataMapperMock.VerifyAll(); var createdResult = result as CreatedResult; Assert.IsNotNull(createdResult); Assert.AreEqual(201, createdResult.StatusCode); Assert.IsInstanceOfType(createdResult.Value, typeof(long)); Assert.AreEqual(42L, createdResult.Value); }
public async Task CreateBestelling_ShouldCreateNewBestelling() { var klant = new Klant { Voornaam = "Pieter", Achternaam = "Pas", Email = "*****@*****.**", Telefoonnummer = "06123456789", Adres = new Adres { Straatnaam = "Schepen Canishof", Huisnummer = "71", Postcode = "6831 HJ", Plaats = "Arnhem", Land = "Nederland" } }; _dbContext.KlantEntities.Add(klant); _dbContext.SaveChanges(); var bestelling = new Bestelling { ContactInfo = new ContactInfo { Naam = $"{klant.Voornaam} {klant.Achternaam}", Email = klant.Email, Telefoonnummer = klant.Telefoonnummer }, Afleveradres = new Afleveradres { Adres = $"{klant.Adres.Straatnaam} {klant.Adres.Huisnummer}", Plaats = klant.Adres.Plaats, Postcode = klant.Adres.Postcode, Land = klant.Adres.Land }, BestelRegels = new List <BestelRegel> { new BestelRegel { Artikelnummer = 10, Aantal = 5 } } }; _jwtHelperMock.Setup(h => h.GetEmail(It.IsAny <HttpContext>())).Returns(klant.Email); PlaatsBestellingCommand commandResult = null; var receiver = _nijnContext.CreateCommandReceiver(NameConstants.BestelServicePlaatsBestellingCommandQueue); receiver.DeclareCommandQueue(); receiver.StartReceivingCommands(request => { commandResult = JsonConvert.DeserializeObject <PlaatsBestellingCommand>(request.Message); return(new ResponseCommandMessage("10", "Long", request.CorrelationId)); }); var result = await _target.CreateBestelling(bestelling); var queue = _nijnContext.CommandBus.Queues[NameConstants.BestelServicePlaatsBestellingCommandQueue]; Assert.IsInstanceOfType(result, typeof(CreatedResult)); Assert.AreEqual(1, queue.CalledTimes); Assert.IsNotNull(commandResult, "commandResult != null"); var bestellingResult = commandResult.Bestelling; Assert.AreEqual(bestelling.ContactInfo.Naam, bestellingResult.ContactInfo.Naam); Assert.AreEqual(bestelling.ContactInfo.Email, bestellingResult.ContactInfo.Email); Assert.AreEqual(bestelling.ContactInfo.Telefoonnummer, bestellingResult.ContactInfo.Telefoonnummer); Assert.AreEqual(bestelling.Afleveradres.Adres, bestellingResult.Afleveradres.Adres); Assert.AreEqual(bestelling.Afleveradres.Plaats, bestellingResult.Afleveradres.Plaats); Assert.AreEqual(bestelling.Afleveradres.Postcode, bestellingResult.Afleveradres.Postcode); Assert.AreEqual(bestelling.Afleveradres.Land, bestellingResult.Afleveradres.Land); Assert.AreEqual(1, bestellingResult.BestelRegels.Count); Assert.IsTrue(bestellingResult.BestelRegels.Any(r => r.Artikelnummer == 10 && r.Aantal == 5)); }