public async Task <IStateData> Create(IClaptrapIdentity identity) { var seatId = SeatId.FromSeatId(identity.Id); var stations = await _trainInfoRepository.GetStationsAsync(seatId.TrainId); var seatInfo = SeatInfo.Create(stations); return(seatInfo); }
public async Task Normal() { var seatInfo = SeatInfo.Create(Enumerable.Range(1000, 4).ToList()); var claptrapDesign = ActorTestHelper.GetDesign(typeof(SeatActor)); using var mocker = claptrapDesign.CreateAutoMock("123", seatInfo); var actor = mocker.Create <SeatActor>(); var reqId1 = "newbe36524-1"; await actor.TakeSeatAsync(1000, 1001, reqId1); }
public void StationMismatched() { var seatInfo = SeatInfo.Create(Enumerable.Range(1000, 4).ToList()); var claptrapDesign = ActorTestHelper.GetDesign(typeof(SeatActor)); using var mocker = claptrapDesign.CreateAutoMock("123", seatInfo); var actor = mocker.Create <SeatActor>(); const string reqId1 = "newbe36524-1"; Assert.ThrowsAsync <StationNotFoundException>(() => actor.TakeSeatAsync(1001, 1000, reqId1)); }
public void AlreadyTaken() { var seatInfo = SeatInfo.Create(Enumerable.Range(1000, 4).ToList()); seatInfo.RequestIds[0] = "taken"; var claptrapDesign = ActorTestHelper.GetDesign(typeof(SeatActor)); using var mocker = claptrapDesign.CreateAutoMock("123", seatInfo); var actor = mocker.Create <SeatActor>(); const string reqId1 = "newbe36524-1"; Assert.ThrowsAsync <SeatHasBeenTakenException>(() => actor.TakeSeatAsync(1000, 1002, reqId1)); }
public void StationMismatched() { using var mocker = AutoMock.GetStrict(); var seatInfo = SeatInfo.Create(Enumerable.Range(1000, 4).ToList()); mocker.Mock <IClaptrapGrainCommonService>() .Setup(x => x.ClaptrapAccessor.Claptrap.State.Data) .Returns(seatInfo); var grain = mocker.Create <SeatGrain>(); grain.SeatId = 123; const string reqId1 = "newbe36524-1"; Assert.ThrowsAsync <StationNotFoundException>(() => grain.TakeSeatAsync(1001, 1000, reqId1)); }
public async Task Normal() { using var mocker = AutoMock.GetStrict(); var seatInfo = SeatInfo.Create(Enumerable.Range(1000, 4).ToList()); mocker.Mock <IClaptrapGrainCommonService>() .Setup(x => x.ClaptrapAccessor.Claptrap.State.Data) .Returns(seatInfo); mocker.MockEventHandling <TakeSeatEvent>(ClaptrapCodes.TakeSeatEvent); var grain = mocker.Create <SeatGrain>(); grain.SeatId = 123; var reqId1 = "newbe36524-1"; await grain.TakeSeatAsync(1000, 1001, reqId1); }
public async Task TakeMore() { using var mocker = AutoMock.GetStrict(); await using var handler = mocker.Create <TakeSeatEventHandler>(); var seatInfo = SeatInfo.Create(Enumerable.Range(1000, 4).ToList()); var reqId1 = "newbe36524-1"; var takeSeatEvent = new TakeSeatEvent { RequestId = reqId1, FromStationId = 1000, ToStationId = 1002 }; await handler.HandleEvent(seatInfo, takeSeatEvent, default); seatInfo.RequestIds.Should().BeEquivalentTo(reqId1, reqId1, string.Empty); }
public void AlreadyTaken() { using var mocker = AutoMock.GetStrict(); var seatInfo = SeatInfo.Create(Enumerable.Range(1000, 4).ToList()); seatInfo.RequestIds[0] = "taken"; mocker.Mock <IClaptrapGrainCommonService>() .Setup(x => x.ClaptrapAccessor.Claptrap.State.Data) .Returns(seatInfo); var grain = mocker.Create <SeatGrain>(); grain.SeatId = 123; const string reqId1 = "newbe36524-1"; Assert.ThrowsAsync <SeatHasBeenTakenException>(() => grain.TakeSeatAsync(1000, 1002, reqId1)); }