public void ReceiveBestellingGeplaatstEvent_ShouldAddBestellingToDatabase()
        {
            // Arrange
            var bestelling = new CommonModels.DsBestelService.Models.Bestelling()
            {
                FactuurTotaalInclBtw = 700,
                BestelStatus         = CommonModels.DsBestelService.Models.BestelStatus.Geplaatst,
                Factuurnummer        = 3,
                Klantnummer          = 1,
                Besteldatum          = DateTime.Now.AddDays(-2)
            };

            var request = new BestellingGeplaatstEvent(bestelling, NameConstants.BestelServiceBestellingGeplaatstEvent);

            // Act
            _target.ReceiveBestellingGeplaatstEvent(request);

            // Assert
            var dbResult = _dbContext.Bestellingen.SingleOrDefault(b => b.Factuurnummer == 3);

            Assert.AreEqual(bestelling.FactuurTotaalInclBtw, dbResult.FactuurTotaalInclBtw);
            Assert.AreEqual(bestelling.BestelStatus.ToString(), dbResult.BestelStatus.ToString());
            Assert.AreEqual(bestelling.Factuurnummer, dbResult.Factuurnummer);
            Assert.AreEqual(bestelling.Klantnummer, dbResult.Klantnummer);
            Assert.AreEqual(bestelling.Besteldatum, dbResult.Besteldatum);
        }
        public void ReceiveBestellingGeplaatstEvent_ShouldAddBestellingToDatabaseAndRaiseEvent()
        {
            // Arrange
            var queueName = "TestQueue";
            var receiver  = _nijnContext.CreateMessageReceiver(queueName, new List <string> {
                NameConstants.BetaalServiceBetalingGeaccrediteerdEvent
            });

            receiver.DeclareQueue();

            var bestelling = new CommonModels.DsBestelService.Models.Bestelling()
            {
                FactuurTotaalInclBtw = 400,
                BestelStatus         = CommonModels.DsBestelService.Models.BestelStatus.Geplaatst,
                Factuurnummer        = 3,
                Klantnummer          = 1,
                Besteldatum          = DateTime.Now.AddDays(-2)
            };

            var request = new BestellingGeplaatstEvent(bestelling, NameConstants.BestelServiceBestellingGeplaatstEvent);

            // Act
            _target.ReceiveBestellingGeplaatstEvent(request);
            bestelling.Factuurnummer = 4;
            _target.ReceiveBestellingGeplaatstEvent(request);

            // Assert
            var queue            = _nijnContext.EventBus.Queues[queueName];
            var bestellingResult = JsonConvert.DeserializeObject <BestellingGeaccrediteerdEvent>(queue[0].Message);

            Assert.AreEqual(1, queue.MessageQueueLength);
            Assert.AreEqual(3, bestellingResult.Factuurnummer);

            var dbResult = _dbContext.Bestellingen.SingleOrDefault(b => b.Factuurnummer == 3);

            Assert.AreEqual(bestelling.FactuurTotaalInclBtw, dbResult.FactuurTotaalInclBtw);
            Assert.AreEqual(bestelling.BestelStatus.ToString(), dbResult.BestelStatus.ToString());
            Assert.AreEqual(3, dbResult.Factuurnummer);
            Assert.AreEqual(bestelling.Klantnummer, dbResult.Klantnummer);
            Assert.AreEqual(bestelling.Besteldatum, dbResult.Besteldatum);
        }