示例#1
0
        public BusinessController(IDataRepository dataRepository, IConfiguration config)
        {
            _dataRepository = dataRepository;
            _config         = config;

            _business = new AltTrackBusiness(_dataRepository, config["TimeLimit"]);
        }
示例#2
0
        public async Task ConnectedVehicleCountTest()
        {
            var options = new DbContextOptionsBuilder <AltTrackDataContext>()
                          .UseInMemoryDatabase(databaseName: "dummy")
                          .Options;

            AltTrackDataRepository dataRepository = new AltTrackDataRepository(new AltTrackDataContext(options));
            AltTrackBusiness       business       = new AltTrackBusiness(dataRepository, "10");

            //This should be update all 7 vehicles as Connected
            var result = await business.GetAllTrackingInfo(async vehicleId =>
            {
                return(await MockStatus("Connected"));
            });


            var actualStatusCount = 0;

            //Check the exact connected count
            var check = result.Select(c =>
            {
                actualStatusCount += c.Vehicles.Where(v => v.Vehicle.LastStatus == "Connected").Select(v => v.Vehicle).ToList().Count;
                return(c);
            }).ToList();

            //In dummy data there is 7 total vehicles, so expected also 7
            //Let's check actual methods result
            Assert.Equal(7, actualStatusCount);
        }
示例#3
0
        public void TimeLimitTest()
        {
            var options = new DbContextOptionsBuilder <AltTrackDataContext>()
                          .UseInMemoryDatabase(databaseName: "dummy")
                          .Options;

            AltTrackDataRepository dataRepository = new AltTrackDataRepository(new AltTrackDataContext(options));
            AltTrackBusiness       business       = new AltTrackBusiness(dataRepository, "40");

            string actual = business.CheckStatus(DateTimeOffset.Now.Subtract(new TimeSpan(0, 30, 0)));

            //Status should be empty because it does not pass time limit
            Assert.Equal(string.Empty, actual);
        }
示例#4
0
        public void TimeLimitPassTest()
        {
            var options = new DbContextOptionsBuilder <AltTrackDataContext>()
                          .UseInMemoryDatabase(databaseName: "dummy")
                          .Options;

            AltTrackDataRepository dataRepository = new AltTrackDataRepository(new AltTrackDataContext(options));
            AltTrackBusiness       business       = new AltTrackBusiness(dataRepository, "10");

            string actual = business.CheckStatus(DateTimeOffset.Now.Subtract(new TimeSpan(0, 30, 0)));

            //Status should be disconnected because it passes 30 minutes over config's 10 value
            Assert.Equal("Disconnected", actual);
        }