public void Add_ShouldAddCorrectItem()
        {
            IAirConditioner airConditioner = new StationaryAirConditioner("Toshiba","EX100",EnergyEfficiencyRating.B, 1000);

            Assert.AreEqual(0, this.Repository.Count);

            this.Repository.Add(airConditioner);

            Assert.AreSame(airConditioner,this.Repository.GetItem(airConditioner.Manufacturer, airConditioner.Model),"Expected air conditioner did not match!");
        }
        public void Add_ShouldAddItemOnlyOnce()
        {
            IAirConditioner airConditioner = new StationaryAirConditioner("Toshiba", "EX100", EnergyEfficiencyRating.B, 1000);

            Assert.AreEqual(0,this.Repository.Count);

            this.Repository.Add(airConditioner);

            Assert.AreEqual(1,this.Repository.Count);
        }
        public void Add_WithDuplicatedItem_ShouldThrowCorrectDuplicateEntryException()
        {
            IAirConditioner airConditioner = new StationaryAirConditioner("Toshiba", "EX100", EnergyEfficiencyRating.B, 1000);
            IAirConditioner airConditioner2 = new StationaryAirConditioner("Toshiba", "EX100", EnergyEfficiencyRating.B, 1000);

            this.Repository.Add(airConditioner);
            this.Repository.Add(airConditioner2);

            try
            {
                this.Repository.Add(airConditioner2);
            }
            catch (DuplicateEntryException ex)
            {
                Assert.AreEqual(string.Format(Constants.DuplicateEntry), ex.Message, "Expected message did not match!");
                throw new DuplicateEntryException(Constants.DuplicateEntry);
            }
        }
        public string RegisterStationaryAirConditioner(string manufacturer, string model, string energyEfficiencyRating, int powerUsage)
        {
            EnergyEfficiencyRating rating;
            try
            {
                rating =
                    (EnergyEfficiencyRating)Enum.Parse(typeof(EnergyEfficiencyRating), energyEfficiencyRating);
            }
            catch (ArgumentException ex)
            {
                throw new ArgumentException(Constants.IncorrectEnergyEfficiencyRating, ex);
            }

            IAirConditioner airConditioner = new StationaryAirConditioner(manufacturer, model, rating, powerUsage);
            this.Database.AirConditioners.Add(airConditioner);
            return string.Format(Constants.RegisterAirConditioner, airConditioner.Model, airConditioner.Manufacturer);
        }