public void ThePassShouldNotBeActivatedAgain() { using (PassContext context = new PassContext(InMemoryDbContextOptionsFactory.Create <PassContext>())) { var pass = new Pass { CardId = 124, CreatedOn = DateTime.Today.AddDays(-4) }; context.Passes.Add(pass); context.SaveChanges(); var passActivation = new PassActivation { PassId = pass.Id, ScanId = 555 }; context.PassActivations.Add(passActivation); context.SaveChanges(); var mediatorMock = new Mock <IMediator>(); mediatorMock.Setup(m => m.Send(It.Is <CreateScan>(c => c.CardId == 124 && c.LocationId == 432))).Returns(555); mediatorMock.Setup(m => m.Send(It.Is <ResolvePass>(r => r.CardId == 124 && r.LocationId == 432))).Returns(pass); var dateServiceMock = new Mock <IDateService>(); dateServiceMock.Setup(d => d.Now()).Returns(DateTime.Now); var controller = new ScanCardController(context, mediatorMock.Object, dateServiceMock.Object); var result = controller.Get(124, 432); mediatorMock.Verify(m => m.Send(It.Is <ActivatePass>(p => p.PassId == pass.Id && p.ScanId == 555)), Times.Never); } }
public void ResultShouldBeTrue() { using (PassContext context = new PassContext(InMemoryDbContextOptionsFactory.Create <PassContext>())) { var pass = new Pass { CardId = 124, CreatedOn = DateTime.Today.AddDays(-4) }; context.Passes.Add(pass); context.SaveChanges(); var passActivation = new PassActivation { PassId = pass.Id, ScanId = 555 }; context.PassActivations.Add(passActivation); context.SaveChanges(); var mediatorMock = new Mock <IMediator>(); mediatorMock.Setup(m => m.Send(It.Is <ResolvePass>(r => r.CardId == 124 && r.LocationId == 432))).Returns(pass); var dateServiceMock = new Mock <IDateService>(); dateServiceMock.Setup(d => d.Now()).Returns(DateTime.Now); var controller = new ScanCardController(context, mediatorMock.Object, dateServiceMock.Object); var result = controller.Get(124, 432); Assert.IsType <OkObjectResult>(result); OkObjectResult okObjectResult = (OkObjectResult)result; Assert.Equal(true, okObjectResult.Value); } }
public void Handle(PurchaseCompleted notification) { var newPasses = new List <Pass>(); foreach (var passPurchase in notification.Passes) { Pass pass = new Pass { CardId = passPurchase.CardId, CreatedOn = DateTime.UtcNow, PassTypeId = passPurchase.PassTypeId }; newPasses.Add(pass); } _passContext.Passes.AddRange(newPasses); _passContext.SaveChanges(); foreach (var newPass in newPasses) { var passAddedEvent = new PassAdded { PassId = newPass.Id, PassTypeId = newPass.PassTypeId, CardId = newPass.CardId, CreatedOn = newPass.CreatedOn }; _bus.Publish(passAddedEvent); } }
public void Should_check_context_using_provided_card_id() { var context = new PassContext(InMemoryDbContextOptionsFactory.Create <PassContext>()); var cardId = 1337; var verifyingPassId = 7331; context.Passes.Add(new Pass { CardId = cardId, Id = 7330 }); context.Passes.Add(new Pass { CardId = cardId, Id = verifyingPassId }); context.Passes.Add(new Pass { CardId = cardId, Id = 7332 }); context.SaveChanges(); var validator = new Mock <IPassValidityChecker>(); validator.Setup(c => c.IsValid(It.IsAny <int>())) .Returns <int>(i => context.Passes.Any(p => p.CardId == i)); var handler = new ResolvePassHandler(context, validator.Object); handler.Handle(new Queries.ResolvePass { CardId = cardId }); validator.Verify(v => v.IsValid(It.Is <int>(i => i == verifyingPassId)), Times.Once); validator.Verify(v => v.IsValid(It.IsAny <int>()), Times.Exactly(3)); }
public int Handle(ActivatePass message) { PassActivation activation = new PassActivation { PassId = message.PassId, ScanId = message.ScanId }; _passContext.PassActivations.Add(activation); _passContext.SaveChanges(); _mediator.Publish(new PassActivated { PassActivationId = activation.Id }); return(activation.Id); }
public int Handle(CreateScan message) { var scan = new Scan { CardId = message.CardId, LocationId = message.LocationId, DateTime = _dateService.Now() }; _passContext.Scans.Add(scan); _passContext.SaveChanges(); _mediator.Publish(new CardScanned { ScanId = scan.Id }); return(scan.Id); }
public async Task <IActionResult> Signup([FromBody] Login val) { UserDataContext userDatadb = new UserDataContext(); UserNContext userNamedb = new UserNContext(); PassContext passworddb = new PassContext(); //At this stage we have no userData besides the ID //Creating this object automatically generates an ID UserDataDB userData = new UserDataDB(); //Create new username and password database entries with the same key UserNDB userName = new UserNDB(userData.UserId); userName.Email = val.email; userName.UserName = val.username; PassDB password = new PassDB(userData.UserId); password.Password = val.password; userDatadb.Add(userData); userNamedb.Add(userName); passworddb.Add(password); //update the databases try { userDatadb.SaveChanges(); userNamedb.SaveChanges(); passworddb.SaveChanges(); } catch (DbUpdateException) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(Ok(200)); //string newUser = JsonSerializer.Serialize(val); //bool complete = await be.incomming(1, 3, newUser); //bool complete = true; //if (complete) //{ // return Ok(200); //} //return BadRequest(400); }
public void Should_be_invalid_if_current_time_is_after_valid_date() { _mockDateService.Setup(x => x.Now()).Returns(new DateTime(2012, 01, 01)); var passType = new PassType { ValidFrom = new DateTime(2010, 01, 01), ValidTo = new DateTime(2011, 01, 01) }; _passTypeContext.PassTypes.Add(passType); _passTypeContext.SaveChanges(); var pass = new Pass { CreatedOn = DateTime.UtcNow, PassTypeId = passType.Id }; _passContext.Add(pass); _passContext.SaveChanges(); var checker = GetInstance(); Assert.False(checker.IsValid(pass.Id)); }