示例#1
0
        public async Task OngoingRides()
        {
            await DbContext.ClearAsync();

            await DbContext.AddDummyRideAsync();

            var response = await Client.GetAsync("/api/rides/ongoing");

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var rides = JsonConvert.DeserializeObject <List <TaxiRide> >(await response.Content.ReadAsStringAsync());

            Assert.AreEqual(1, rides.Count);
        }
示例#2
0
        public async Task CompletedRides()
        {
            await DbContext.ClearAsync();

            var(_, _, rideID) = await DbContext.AddDummyRideAsync();

            await DbContext.EndRideAsync(rideID, 99m);

            var response = await Client.GetAsync("/api/rides/completed");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);

            var rides = JsonConvert.DeserializeObject <List <TaxiRide> >(await response.Content.ReadAsStringAsync());

            Assert.Single(rides);
        }
示例#3
0
        public async Task Initialize()
        {
            await DbContext.ClearAsync();

            await DbContext.AddDummyRideAsync();

            var(_, _, rideID) = await DbContext.AddDummyRideAsync();

            await DbContext.EndRideAsync(rideID, 99m);

            var vm = new MainWindowViewModel(Client);
            await vm.InitAsync();

            Assert.AreEqual(2, vm.Taxis.Count);
            Assert.AreEqual(2, vm.Drivers.Count);
            Assert.AreEqual(1, vm.OngoingRides.Count);
            Assert.AreEqual(1, vm.CompletedRides.Count);
        }
示例#4
0
        public async Task EndRide()
        {
            const decimal charge = 99m;

            var(_, _, rideID) = await DbContext.AddDummyRideAsync();

            var endRide = new EndRideDto {
                Charge = charge
            };

            var body     = new StringContent(JsonConvert.SerializeObject(endRide), Encoding.UTF8, "application/json");
            var response = await Client.PostAsync($"/api/rides/{rideID}", body);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var newRide = JsonConvert.DeserializeObject <TaxiRide>(await response.Content.ReadAsStringAsync());

            Assert.AreEqual(charge, newRide.Charge);
            Assert.IsTrue(newRide.End <= DateTime.Now && newRide.End >= DateTime.Now.AddSeconds(-5));
        }
示例#5
0
        public async Task EndRide()
        {
            await DbContext.ClearAsync();

            await DbContext.AddDummyRideAsync();

            var hasNotified = false;
            var vm          = new MainWindowViewModel(Client);

            ((INotifyPropertyChanged)vm).PropertyChanged += (_, ea) => hasNotified = true;;

            await vm.InitAsync();

            vm.SelectedOngoingRide = vm.OngoingRides.First();
            vm.Charge = 99m;
            await vm.EndRideAsync();

            var ongoingRides = await DbContext.Rides.CountAsync(r => !r.Charge.HasValue || !r.End.HasValue);

            Assert.AreEqual(0, ongoingRides);
            Assert.IsTrue(hasNotified);
        }