Exemplo n.º 1
0
        public void TestValidateBooking1()
        {
            IDStation dbStation = new DStation();
            IDBatteryType dbType = new DBatteryType();
            IDBBatteryStorage dbStorage = new DBBatteryStorage();
            IDPeriod dbPeriod = new DBPeriod();
            int sid = dbStation.addNewRecord("name", "address", "country", "state");
            int btid = dbType.addNewRecord("name", "producer", 10, 10);
            int bsid = dbStorage.addNewRecord(btid, sid, 10);
            MBatteryStorage storage = dbStorage.getRecord(bsid, true);
            try
            {

                MPeriod firstPeriod = new MPeriod();
                firstPeriod.bookedBatteryNumber = 6;
                firstPeriod.initBatteryNumber = 10;
                firstPeriod.time = DateTime.Today;
                dbPeriod.addNewRecord(bsid, firstPeriod.time, firstPeriod.initBatteryNumber, firstPeriod.bookedBatteryNumber);
                storage.periods.Add(firstPeriod);
                MPeriod testPeriod = new MPeriod();
                testPeriod.time = DateTime.Today.AddHours(10);
                testPeriod.initBatteryNumber = 10;
                testPeriod.bookedBatteryNumber = 4;
                dbPeriod.addNewRecord(bsid, testPeriod.time, testPeriod.initBatteryNumber, testPeriod.bookedBatteryNumber);
                storage.periods.Add(testPeriod);
                MPeriod lastPeriod = new MPeriod();
                lastPeriod.time = DateTime.Today.AddHours(20);
                lastPeriod.initBatteryNumber = 10;
                lastPeriod.bookedBatteryNumber = 5;
                dbPeriod.addNewRecord(bsid, lastPeriod.time, lastPeriod.initBatteryNumber, lastPeriod.bookedBatteryNumber);
                storage.periods.Add(lastPeriod);
                BatteryStorageCtr storageCtr = new BatteryStorageCtr();
                if (storageCtr.validateBookingForStation(sid, btid, 1, DateTime.Today.AddHours(10)))
                {
                    Assert.AreEqual(2, 1);
                }
                else
                {
                    Assert.AreEqual(1, 1); //it should fail
                }
                if (storageCtr.validateUpdateBookingForStation(sid, btid, 1, DateTime.Today.AddHours(10)))
                {
                    Assert.AreEqual(2, 1);
                }
                else
                {
                    Assert.AreEqual(1, 1); //it should fail
                }
            }
            finally
            {
                foreach (MPeriod p in storage.periods)
                {
                    dbPeriod.deleteRecord(bsid, p.time);
                }
                dbStorage.deleteRecord(bsid);
                dbType.deleteRecord(btid);
                dbStation.deleteRecord(sid);
            }
        }
Exemplo n.º 2
0
 public void updateRecord(int bsID, DateTime time)
 {
     IDPeriod dbPeriod = new DBPeriod();
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     MBatteryStorage storage = dbStorage.getRecord(bsID, true);
     int init = storage.storageNumber;
     dbPeriod.updateRecord(bsID, time, init);
 }
Exemplo n.º 3
0
 public int addNewRecord(int bsID, DateTime time)
 {
     IDPeriod dbPeriod = new DBPeriod();
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     MBatteryStorage storage = dbStorage.getRecord(bsID, true);
     int init = storage.storageNumber;
     int id = dbPeriod.addNewRecord(bsID,time,init,0);
     return id;
 }
Exemplo n.º 4
0
 public bool deleteBookingForStation(int sId, int btId, int quantity, DateTime time)
 {
     bool success = false;
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     MBatteryStorage storage = dbStorage.getRecord(btId, sId, true);
     IDPeriod dbPeriod = new DBPeriod();
     PeriodCalculator pCalc = new PeriodCalculator();
     try
     {
         MPeriod period = pCalc.getBookingPeriod(storage, time);
         period.bookedBatteryNumber = period.bookedBatteryNumber - quantity;
         dbPeriod.updateRecord(storage.id, period.time, period.initBatteryNumber, period.bookedBatteryNumber);
         success = true;
     }
     catch (Exception)
     {
         throw new SystemException("Can not delete Booking");
     }
     return success;
 }
Exemplo n.º 5
0
 public bool validateUpdateBookingForStation(int sId, int btId, int updateQuantity, DateTime time)
 {
     bool validate = false;
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     MBatteryStorage storage = dbStorage.getRecord(btId, sId, true);
     PeriodCalculator pCalc = new PeriodCalculator();
     MPeriod period = pCalc.getBookingPeriod(storage, time);
     MPeriod previous = pCalc.getPreviousPeriod(storage, period);
     MPeriod next = pCalc.getNextPeriod(storage, period);
     int booked = period.bookedBatteryNumber + previous.bookedBatteryNumber;
     int available = period.initBatteryNumber - booked;
     int futureBooked = period.bookedBatteryNumber + next.bookedBatteryNumber;
     int futureAvailable = next.initBatteryNumber - futureBooked;
     if (available >= updateQuantity && futureAvailable >= updateQuantity)
     {
         validate = true;
     }
     return validate;
 }
Exemplo n.º 6
0
 public MBatteryStorage getRecord(int id, Boolean getAssociation)
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     return dbStorage.getRecord(id, true);
 }