public void ChangeName_GivenEmptyString_ShouldThrowArgumentNullException()
        {
            // Arrange
            var snack = new Snack("KitKat", 10);

            // Act
            Action changeNameAction = () => snack.ChangeName(string.Empty);

            // Assert
            changeNameAction.Should().Throw <ArgumentException>();
        }
Example #2
0
        public IActionResult Details(int snackId)
        {
            Snack snack = _snackRepository.GetSnackById(snackId);

            if (snack == null)
            {
                return(View("~/Views/Error/Error.cshtml"));
            }

            return(View(snack));
        }
        public IHttpActionResult GetSnack(string id)
        {
            Snack snack = db.Snacks.Find(id);

            if (snack == null)
            {
                return(NotFound());
            }

            return(Ok(snack));
        }
        public void ChangeName_WithNameTigreton_ShouldUpdateTheSnackName()
        {
            // Arrange
            const string expectedName = "Tigreton";
            var          snack        = new Snack("KitKat", 10);

            // Act
            snack.ChangeName(expectedName);

            // Assert
            snack.Name.Should().Be(expectedName);
        }
Example #5
0
        internal Snack Edit(Snack original)
        {
            string sql = @"
            UPDATE snacks
            SET
                description = @Description,
                price = @Price
            WHERE id = @Id;
            SELECT * FROM snacks WHERE id = @Id;";

            return(_db.QueryFirstOrDefault <Snack>(sql, original));
        }
        public async Task <IActionResult> Create([Bind("Id,Name,DescriptionShort,DescriptionDetailed,Price,ImageURL,ImageThumbnaiURL,Preferred,InStock,CategoryId")] Snack snack)
        {
            if (ModelState.IsValid)
            {
                _context.Add(snack);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CategoryId"] = new SelectList(_context.Categories, "Id", "Id", snack.CategoryId);
            return(View(snack));
        }
Example #7
0
 public async Task UpdateSnackIngredients(Snack snack)
 {
     foreach (var snackIngredient in snack.Ingredients)
     {
         await _context.Connection.ExecuteAsync("SP_SnackIngredient_Update", new
         {
             IdIngredient = snackIngredient.Id,
             IdSnack      = snack.Id,
             Quantity     = snackIngredient.Quantity
         }, commandType : CommandType.StoredProcedure);
     }
 }
Example #8
0
        public void AddSpecificIngredientAndQuantity(Snack snack, IEnumerable <Ingredient> ingredients, int quantity)
        {
            foreach (var item in ingredients)
            {
                if (item.Name != "Bacon")
                {
                    snack.AddIngredient(item, quantity);
                }
            }

            snack.CalculatePrice();
        }
        public void Repository_Snack_deveria_retornar_um_snack()
        {
            //Arrange
            Snack snack = _repository.Add(_snack);

            //Action
            Snack result = _repository.GetById(snack.Id);

            //Assert
            result.Name.Should().Be(snack.Name);
            result.Id.Should().Be(snack.Id);
        }
Example #10
0
        public bool Buy_Failed_Test(int inputMoney)
        {
            Machine vm = new Machine();

            //Setup
            vm.AddMoney(new Money(inputMoney));
            Snack kex  = new Snack("Kex", new Money(1000));
            User  user = new User();

            //Run
            return(vm.Buy(kex, user));
        }
Example #11
0
        public void IfSnackInHeadReturnTrue()
        {
            //arrange
            Snack snack = new Snack(1, 1);
            Snake snake = new Snake(1, 1);

            //act
            var output = snack.IsInSnake(snake);

            //asset
            Assert.IsTrue(output);
        }
Example #12
0
        public void VerifyIngredientsOfSnack()
        {
            var snack       = new Snack(Guid.NewGuid(), "XBC");
            var ingredients = CreateIngredients();

            foreach (var item in ingredients)
            {
                snack.AddIngredient(item, 1);
            }

            Assert.Equal(5, snack.Ingredients.Count);
        }
        public async Task <IActionResult> Create([Bind("Id,Name,Price,ShortDescription,LongDescription,MainImage,MainThumbnail,IsStarred,IsAvailable,SnackCategoryId")] Snack snack)
        {
            if (ModelState.IsValid)
            {
                _context.Add(snack);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["SnackCategoryId"] = new SelectList(_context.SnackCategories, "Id", "Name", snack.SnackCategoryId);
            return(View(snack));
        }
Example #14
0
 public ActionResult <Snack> Edit([FromBody] Snack editSnack, int id)
 {
     try
     {
         editSnack.Id = id;
         return(Ok(_service.Edit(editSnack)));
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
Example #15
0
        public async Task <IActionResult> Create([Bind("Id,Name,SmallDescription,LongDescription,Price,ImgUrl,ImgThumbnailUrl,IsPreferSnack,InStock,CategoryId")] Snack snack)
        {
            if (ModelState.IsValid)
            {
                _context.Add(snack);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CategoryId"] = new SelectList(_context.Categories, "Id", "Id", snack.CategoryId);
            return(View(snack));
        }
        public void Repository_Snack_deveria_deletar_um_snack()
        {
            //Arrange
            Snack newSnack = _repository.Add(_snack);

            //Action
            _repository.Delete(newSnack.Id);

            //Assert
            Snack result = _repository.GetById(newSnack.Id);

            result.Should().BeNull();
        }
        public void SetUp()
        {
            var connection = DbConnectionFactory.CreatePersistent(Guid.NewGuid().ToString());

            Context     = new FakeDbContext(connection);
            _repository = new SnackRepository(Context);
            _snack      = ObjectMother.snackDefault;

            _snackSeed = ObjectMother.snackDefault;

            Context.Snacks.Add(_snackSeed);
            Context.SaveChanges();
        }
Example #18
0
        internal Snack Create(Snack newSnack)
        {
            string sql = @"
            INSERT INTO snacks
            (name, description, price)
            VALUES
            (@Name, @Description, @Price);
            SELECT LAST_INSERT_ID();";
            int    id  = _db.ExecuteScalar <int>(sql, newSnack);

            newSnack.Id = id;
            return(newSnack);
        }
Example #19
0
        public void VerifySnackPrice()
        {
            var snack       = new Snack(Guid.NewGuid(), "XBC");
            var ingredients = CreateIngredients();

            foreach (var item in ingredients)
            {
                snack.AddIngredient(item, 2);
            }

            snack.CalculatePrice();
            Assert.Equal(15.4, snack.TotalPrice);
        }
Example #20
0
        public void Setup()
        {
            var connection = DbConnectionFactory.CreatePersistent(Guid.NewGuid().ToString());

            _context    = new FakeDbContext(connection);
            _repository = new SnackRepository(_context);
            _snack      = ObjectMother.GetDefaultSnack();

            //Seed
            _snackBase = ObjectMother.GetDefaultSnack();
            _context.Snacks.Add(_snackBase);
            _context.SaveChanges();
        }
Example #21
0
        public static bool TestIfObjectCanBeBoughtByActor(GameObject obj, Sim actor)
        {
            ServingContainer container = obj as ServingContainer;

            if (container != null)
            {
                return(container.AmountLeft == AmountLeftState.Full);
            }

            Snack snackContainer = obj as Snack;

            return((snackContainer != null) && (snackContainer.HasFoodLeft()));
        }
Example #22
0
        public void SnackRepository_Should_Delete_Snack()
        {
            // Arrange
            int id = 1;

            // Act
            _snackRepo.Remove(id);
            _snackRepo.SaveAll();
            Snack snack = _snackRepo.FindById(id);

            // Assert
            Assert.IsNull(snack, "Snack is deleted.");
        }
Example #23
0
        public void CanBuySnack_WithSnackPriceSuperiorThanInsertedMoney_ShouldReturnOkCode(
            Snack snack,
            Account sut)
        {
            // Arrange
            sut.InsertMoney(Money.Two);

            // Act
            var result = sut.CanBuy(snack);

            // Assert
            result.Code.Should().Be(AccountCode.Ok);
        }
Example #24
0
        public void Buy_WithSnackPriceSuperiorThanInsertedMoney_ShouldThrowException(
            Snack snack,
            Account sut)
        {
            // Arrange
            sut.InsertMoney(Money.TwentyCents);

            // Act
            Action buyAction = () => sut.Buy(snack);

            // Assert
            buyAction.Should().Throw <InvalidOperationException>();
        }
Example #25
0
        public void IfSnackInTailReturnTrue()
        {
            //arrange
            Snack snack = new Snack(1, 1);
            Snake snake = new Snake(2, 1);

            snake.Tail.Add(new Coordinate(1, 1));

            //act
            var output = snack.IsInSnake(snake);

            //asset
            Assert.IsTrue(output);
        }
Example #26
0
        public void Buy_SuccessfullyComplete_ShouldUpdateMoneyInTransaction(
            Snack snack,
            Account sut)
        {
            // Arrange
            sut.InsertMoney(Money.Two);

            // Act
            sut.Buy(snack);

            // Assert
            sut.MoneyInTransaction.Should().Be(Money.Zero);
            sut.Coins.First(x => x.Money == Money.Two).Quantity.Should().Be(1);
        }
Example #27
0
        public void VerifyPriceWithLightPromotion()
        {
            var order       = new Order(Guid.NewGuid());
            var ingredients = CreateIngredients();

            for (int i = 0; i < 3; i++)
            {
                var snack = new Snack(Guid.NewGuid(), "XBC");
                AddSpecificIngredientAndQuantity(snack, ingredients, 1);
                order.AddSnack(snack);
            }

            Assert.Equal(15.39, order.TotalPrice);
        }
Example #28
0
        public void VerifyPriceOfOrder()
        {
            var order       = new Order(Guid.NewGuid());
            var ingredients = CreateIngredients();

            for (int i = 0; i < 3; i++)
            {
                var snack = new Snack(Guid.NewGuid(), "XBC");
                AddAllIngredientAndQuantity(snack, ingredients, 2);
                order.AddSnack(snack);
            }

            Assert.Equal(46.2, order.TotalPrice);
        }
Example #29
0
        public bool Buy_Completed_Test(int inputMoney)
        {
            //Buy Takes:
            //IPurchable and user
            Machine vm = new Machine();

            //Setup
            vm.AddMoney(new Money(inputMoney));
            Snack kex  = new Snack("Kex", new Money(1));
            User  user = new User();

            //Run
            return(vm.Buy(kex, user));
        }
Example #30
0
        public bool Add(Snack snack)
        {
            try
            {
                _cinemaDbContext.Add(snack);
                _cinemaDbContext.SaveChanges();
            }
            catch (System.Exception)
            {
                return(false);
            }

            return(true);
        }
Example #31
0
    /*	public void makeDrink (Item sc_drink, Vector3 drinkPos){
        //todo 미리 뿌려져있는 술과 겹쳐지게 해야함.
        TileInfo ti = boardManager._Stage [currStage].get_tileInfo ()[((int)drinkPos.y), ((int)drinkPos.x)];
        GameObject go_drink = Instantiate (Resources.Load ("Image_Drink/" + Config.spriteName_Item[sc_drink.GetItemCode()], typeof(GameObject))) as GameObject;
        go_drink.transform.position = drinkPos;
        ti.i.Add (sc_drink);					//Tile Info에 등록
    }*/
    public void makeItemGO(int itemType, Vector3 itemPos, string resourceName)
    {
        TileInfo ti = boardManager._Stage [currStage].get_tileInfo ()[((int)itemPos.y), ((int)itemPos.x)];

        if (itemType < 0) {																			//골드일 경우
            GameObject go_gold = Instantiate (Resources.Load (resourceName, typeof(GameObject))) as GameObject;
            go_gold.GetComponent<ObjectID> ().secondCode = -itemType;
            go_gold.transform.position = itemPos;
            go_gold.GetComponent<SpriteRenderer> ().sortingOrder = ti.i.Count+ti.d.Count;			//소팅 레이어 등록
            Gold sc_gold = new Gold ();
            sc_gold.SetGameObject (go_gold);
            sc_gold.init (-1, -itemType, 0);
        //			Debug.Log("make Item in " + itemPos.x + "," + itemPos.y);
            ti.i.Add (sc_gold);		//Tile Info에 드랍 골드 등록
        } else {
            switch(itemType){
            case 0:			//drink
                Debug.Log("Can't make drink here");
                break;
            case 1:			//weapon
                GameObject go_weapon = Instantiate (Resources.Load (resourceName, typeof(GameObject))) as GameObject;
                go_weapon.transform.position = itemPos;
                go_weapon.GetComponent<SpriteRenderer> ().sortingOrder = ti.i.Count+ti.d.Count;		//소팅 레이어 등록
                Weapon sc_weapon = new Weapon();
                sc_weapon.SetGameObject (go_weapon);
                ObjectID weaponId = go_weapon.GetComponent<ObjectID>();
                sc_weapon.init (weaponId.firstCode, weaponId.secondCode, weaponId.thirdCode);
                ti.i.Add (sc_weapon);		//Tile Info에 등록
                break;
            case 2:			//accessory
                GameObject go_acce = Instantiate (Resources.Load (resourceName, typeof(GameObject))) as GameObject;
                go_acce.transform.position = itemPos;
                go_acce.GetComponent<SpriteRenderer> ().sortingOrder = ti.i.Count+ti.d.Count;		//소팅 레이어 등록
                Accessory sc_acce = new Accessory();
                sc_acce.SetGameObject (go_acce);
                ObjectID acceId = go_acce.GetComponent<ObjectID>();
                sc_acce.init (acceId.firstCode, acceId.secondCode, acceId.thirdCode);
                ti.i.Add (sc_acce);		//Tile Info에 등록
                break;
            case 3:			//snack
                GameObject go_snack = Instantiate (Resources.Load (resourceName, typeof(GameObject))) as GameObject;
                go_snack.transform.position = itemPos;
                go_snack.GetComponent<SpriteRenderer> ().sortingOrder = ti.i.Count+ti.d.Count;		//소팅 레이어 등록
                Snack sc_snack = new Snack();
                sc_snack.SetGameObject (go_snack);
                ObjectID snackId = go_snack.GetComponent<ObjectID>();
                sc_snack.init (snackId.firstCode, snackId.secondCode, snackId.thirdCode);
                ti.i.Add (sc_snack);		//Tile Info에 등록
                break;
            case 4:			//alcoholBag
                GameObject go_abg = Instantiate (Resources.Load (resourceName, typeof(GameObject))) as GameObject;
                go_abg.transform.position = itemPos;
                go_abg.GetComponent<SpriteRenderer> ().sortingOrder = ti.i.Count+ti.d.Count;		//소팅 레이어 등록
                AlcoholBag sc_abg = new AlcoholBag();
                sc_abg.SetGameObject (go_abg);
                ObjectID abgId = go_abg.GetComponent<ObjectID>();
                sc_abg.init (abgId.firstCode, abgId.secondCode, abgId.thirdCode);
                ti.i.Add (sc_abg);			//Tile Info에 등록
                break;
            case 5:			//alcoholBottle
                GameObject go_abt = Instantiate (Resources.Load (resourceName, typeof(GameObject))) as GameObject;
                go_abt.transform.position = itemPos;
                go_abt.GetComponent<SpriteRenderer> ().sortingOrder = ti.i.Count+ti.d.Count;		//소팅 레이어 등록
                AlcoholBottle sc_abt = new AlcoholBottle();
                sc_abt.SetGameObject (go_abt);
                ObjectID abtId = go_abt.GetComponent<ObjectID>();
                sc_abt.init (abtId.firstCode, abtId.secondCode, abtId.thirdCode);
                ti.i.Add (sc_abt);			//Tile Info에 등록
                break;
            }
        }
    }