public void AddDeveloperToShoppingCartErrorByNullDeveloperParameter()
        {
            HttpContext.Current = new HttpContext(new HttpRequest(null, "http://localhost", null), new HttpResponse(null));

            ShoppingCartRepository repository = new ShoppingCartRepository();

            repository.AddDeveloperToShoppingCart(null);
        }
        public void AddDeveloperToShoppingCartErrorByEmptyDeveloperValuesParameter()
        {
            HttpContext.Current = new HttpContext(new HttpRequest(null, "http://localhost", null), new HttpResponse(null));

            ShoppingCartRepository repository = new ShoppingCartRepository();

            var newDeveloper = new ShoppingCartDeveloper();

            newDeveloper.Price    = default(double);
            newDeveloper.Username = String.Empty;
            newDeveloper.Hours    = default(int);

            repository.AddDeveloperToShoppingCart(newDeveloper);
        }
        public void AddDeveloperToShoppingCartErrorByDuplicatingDevelopers()
        {
            HttpContext.Current = new HttpContext(new HttpRequest(null, "http://localhost", null), new HttpResponse(null));

            var newDeveloper = new ShoppingCartDeveloper()
            {
                Username = "******",
                Price    = 200
            };

            var duplicatedDeveloper = new ShoppingCartDeveloper()
            {
                Username = "******",
                Price    = 200
            };

            ShoppingCartRepository repository = new ShoppingCartRepository();

            bool firsDevloperAdded    = repository.AddDeveloperToShoppingCart(newDeveloper);
            bool secondDeveloperAdded = repository.AddDeveloperToShoppingCart(duplicatedDeveloper);

            Assert.IsTrue(firsDevloperAdded);
            Assert.IsFalse(secondDeveloperAdded);
        }
        public void AddDeveloperToShoppingCart()
        {
            HttpContext.Current = new HttpContext(new HttpRequest(null, "http://localhost", null), new HttpResponse(null));

            var newDeveloper = new ShoppingCartDeveloper()
            {
                Username = "******",
                Price    = 200,
                Hours    = 40
            };

            ShoppingCartRepository repository = new ShoppingCartRepository();

            bool devloperAdded = repository.AddDeveloperToShoppingCart(newDeveloper);

            var contextModified = (ShoppingCart)HttpContext.Current.Cache[CacheKey];

            Assert.IsTrue(devloperAdded);
            Assert.AreEqual(newDeveloper.Price, contextModified.ShoppingCartDevelopers.Find(x => x.Username.Equals(newDeveloper.Username)).Price);
        }