コード例 #1
0
        public async Task <IHttpActionResult> PutCocktail(int id, Cocktail cocktail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != cocktail.Id)
            {
                return(BadRequest());
            }

            _db.Entry(cocktail).State = EntityState.Modified;

            try
            {
                await _db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CocktailExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #2
0
        public async Task ReturnInstanceOfTypeCocktailIngredient()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnInstanceOfTypeCocktailIngredient));
            var id      = Guid.NewGuid();
            var id2     = Guid.NewGuid();

            var cocktail = new Cocktail
            {
                Id   = id,
                Name = "testCocktail"
            };

            var ingredient = new Ingredient
            {
                Id   = id2,
                Name = "testIngredient"
            };

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut    = new CocktailIngredientService(assertContext);
                var result = await sut.CreateCocktailIngredientAsync(cocktail.Id, ingredient.Id);

                Assert.IsInstanceOfType(result, typeof(CocktailIngredient));
                Assert.AreEqual(cocktail.Id, result.CocktailId);
                Assert.AreEqual(ingredient.Id, result.IngredientId);
            }
        }
コード例 #3
0
 public void Init(int _index, Cocktail _cocktail, ClientManager _clientManager, Image _mood)
 {
     m_index         = _index;
     m_cocktail      = _cocktail;
     m_clientManager = _clientManager;
     m_mood          = _mood;
 }
コード例 #4
0
        public async Task <Cocktail> UpdateCocktail(Cocktail updatedCocktail, int id)
        {
            string userId = User.FindFirst(ClaimTypes.NameIdentifier).Value;
            var    model  = await _cocktailsService.Update(updatedCocktail, id, userId);

            return(model);
        }
コード例 #5
0
        public CocktailDTO MapToCocktailDTO(Cocktail cocktail)
        {
            if (cocktail == null)
            {
                return(null);
            }
            var cocktailDTO = new CocktailDTO
            {
                Id            = cocktail.Id,
                Name          = cocktail.Name,
                AverageRating = cocktail.AverageRating,
                Bars          = cocktail.CocktailBars.Select(b => new BarDTO
                {
                    Id   = b.Bar.Id,
                    Name = b.Bar.Name
                }).ToList(),
                Ingredients = cocktail.IngredientsCocktails.Select(i => new IngredientDTO
                {
                    Id   = i.Ingredient.Id,
                    Name = i.Ingredient.Name
                }).ToList(),
                IsDeleted   = cocktail.IsDeleted,
                ImageData   = cocktail.ImageData,
                ImageSource = cocktail.ImageSource
            };

            return(cocktailDTO);
        }
コード例 #6
0
        public void DeleteTheDesiredBarCocktail()
        {
            // Arrange
            var options = TestUtilities.GetOptions(nameof(DeleteTheDesiredBarCocktail));

            // Act, Assert
            using (var assertContext = new CocktailDB(options))
            {
                var sut      = new BarCocktailServices(assertContext);
                var cocktail = new Cocktail
                {
                    Name = "Mojito"
                };
                var bar = new Bar
                {
                    Name = "Mojito Bar"
                };

                var barCocktail = sut.CreateAsync(bar, cocktail).GetAwaiter().GetResult();
                Assert.IsTrue(assertContext.BarCocktail.Contains(barCocktail));

                sut.DeleteAsync(bar, cocktail).GetAwaiter().GetResult();
                Assert.IsFalse(assertContext.BarCocktail.Contains(barCocktail));
            }
        }
コード例 #7
0
        public async Task GetIndexPageCocktails_ShouldReturn_Correct_When_Name_IsPassed()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(GetIndexPageCocktails_ShouldReturn_Correct_When_Name_IsPassed));

            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan",
            };
            var cocktail2 = new Cocktail {
                Id = Guid.NewGuid(), Name = "The Mall Coffee"
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddRangeAsync(cocktail, cocktail2);

                await arrangeContext.SaveChangesAsync();
            };
            //Act,Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new CocktailServices(assertContext);
                var result = await sut.GetIndexPageCocktails(1, "Manhattan");

                Assert.AreEqual(1, result.Count);
                Assert.AreEqual(cocktail.Id, result.ToList()[0].Id);
                Assert.AreEqual(cocktail.Name, result.ToList()[0].Name);
            }
        }
コード例 #8
0
        public async Task Throw_When_Bar_IsMissing()
        {
            //Arrange
            var options    = Utils.GetOptions(nameof(Throw_When_Bar_IsMissing));
            var barId      = Guid.Parse("92a05c62-6f33-4dc9-bcc1-c9c946bf693a");
            var cocktailId = Guid.Parse("9ef97551-87f6-40ce-a88b-6c0e876ccb51");
            var cocktail   = new Cocktail()
            {
                Id   = cocktailId,
                Name = "Margarita",
            };

            using (var arrangeContext = new CMContext(options))
            {
                arrangeContext.Cocktails.Add(cocktail);
                await arrangeContext.SaveChangesAsync();
            }
            //Act,Assert
            using (var assertContext = new CMContext(options))
            {
                var sut = new BarService(assertContext);

                await Assert.ThrowsExceptionAsync <ArgumentNullException>
                    (async() => await sut.AddCocktailToBarAsync(barId, cocktailId));
            }
        }
コード例 #9
0
        public async Task GetIndexPageCocktails_Returns_Only_ExistingInstances()
        {
            //Arrange
            var options  = Utils.GetOptions(nameof(GetIndexPageCocktails_Returns_Only_ExistingInstances));
            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan", IsDeleted = true
            };
            var cocktail2 = new Cocktail {
                Id = Guid.NewGuid(), Name = "The Mall Coffee"
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddRangeAsync(cocktail, cocktail2);

                await arrangeContext.SaveChangesAsync();
            };
            //Act,Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new CocktailServices(assertContext);
                var result = await sut.GetIndexPageCocktails(0, null);

                Assert.AreEqual(1, result.Count);
                Assert.AreEqual(cocktail2.Id, result.ToList()[0].Id);
                Assert.AreEqual(cocktail2.Name, result.ToList()[0].Name);
            }
        }
コード例 #10
0
        public async Task GetIndexPageCocktails_Retuns_Correct_When_ParamsAreValid()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(GetIndexPageCocktails_Retuns_Correct_When_ParamsAreValid));

            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan",
            };
            var cocktail2 = new Cocktail {
                Id = Guid.NewGuid(), Name = "The Mall Coffee"
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddRangeAsync(cocktail, cocktail2);

                await arrangeContext.SaveChangesAsync();
            };


            //Act,Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new CocktailServices(assertContext);
                var result = await sut.GetIndexPageCocktails(1, "Ma");

                Assert.AreEqual(2, result.Count);
                Assert.AreEqual(cocktail.Id, result.ToList()[0].Id);
                Assert.AreEqual(cocktail.Name, result.ToList()[0].Name);
                Assert.AreEqual(cocktail2.Id, result.ToList()[1].Id);
                Assert.AreEqual(cocktail2.Name, result.ToList()[1].Name);
                Assert.IsInstanceOfType(result, typeof(ICollection <CocktailDTO>));
            }
        }
        public async Task ThrowExceptionMessage_WhenCocktailLikeDoesntExist()
        {
            var options = TestUtils.GetOptions(nameof(ThrowExceptionMessage_WhenCocktailLikeDoesntExist));

            var cocktail = new Cocktail {
                Id = "2"
            };
            var user = new AppUser {
                Id = "1"
            };
            var review1 = new CocktailReview {
                Id = "1", Rating = 6, Description = "0100101", CocktailId = "2"
            };
            var review2 = new CocktailReview {
                Id = "2", Rating = 10, Description = "0100101", CocktailId = "2"
            };

            //var like1 = new CocktaiilReviewLike { Id = "1", BarReviewID = "1", AppUserID = "1" };
            //var like2 = new BarReviewLike { Id = "2", BarReviewID = "2", AppUserID="1" };
            using (var arrangeContext = new CMContext(options))
            {
                var sut = new ReviewServices(arrangeContext);
                arrangeContext.Add(cocktail);
                arrangeContext.Add(user);
                arrangeContext.Add(review1);
                await arrangeContext.SaveChangesAsync();

                var ex = await Assert.ThrowsExceptionAsync <MagicException>(
                    async() => await sut.RemoveBarReviewLike(review1.Id, user.Id)
                    );

                Assert.AreEqual(ExceptionMessages.LikeNull, ex.Message);
            }
        }
コード例 #12
0
        public async Task DeleteAsync(Bar bar, Cocktail cocktail)
        {
            var barCocktail = await _context.BarCocktail.FirstOrDefaultAsync(b => b.Bar == bar && b.Cocktail == cocktail);

            _context.BarCocktail.Remove(barCocktail);
            await _context.SaveChangesAsync();
        }
コード例 #13
0
        public void CorrectMapping_ToCocktailReviewDTO()
        {
            //Arrange
            var sut = new CocktailReviewMapper();

            var options  = Utils.GetOptions(nameof(CorrectMapping_ToCocktailReviewDTO));
            var cocktail = new Cocktail {
                Id = 1, Name = "Mojito"
            };
            var user = new User {
                Id = 2, UserName = "******"
            };
            var review = new CocktailsUsersReviews
            {
                CocktailId = 1,
                Cocktail   = cocktail,
                UserId     = 2,
                User       = user,
                Comment    = "Top!",
                Rating     = 4
            };

            //Act
            var result = sut.MapToCocktailReviewDTO(review);

            //Assert
            Assert.AreEqual(review.CocktailId, result.CocktailId);
            Assert.AreEqual(review.UserId, result.AuthorId);
            Assert.AreEqual(review.Cocktail.Name, result.CocktailName);
            Assert.AreEqual(review.User.UserName, result.Author);
            Assert.AreEqual(review.Comment, result.Comment);
            Assert.AreEqual(review.Rating, result.Rating);
        }
コード例 #14
0
        public void CorrectReturnInstanceType_ToCocktailReviewDTO()
        {
            //Arrange
            var sut = new CocktailReviewMapper();

            var options  = Utils.GetOptions(nameof(CorrectReturnInstanceType_ToCocktailReviewDTO));
            var cocktail = new Cocktail {
                Id = 1, Name = "Mojito"
            };
            var user = new User {
                Id = 2, UserName = "******"
            };
            var review = new CocktailsUsersReviews
            {
                CocktailId = 1,
                Cocktail   = cocktail,
                UserId     = 2,
                User       = user,
                Comment    = "Top!",
                Rating     = 4
            };

            //Act
            var result = sut.MapToCocktailReviewDTO(review);

            //Assert
            Assert.IsInstanceOfType(result, typeof(CocktailReviewDTO));
        }
コード例 #15
0
        private void Add_Tapped(object sender, TappedRoutedEventArgs e)
        {
            List <Cocktail> CocktailList = new List <Cocktail>();

            CocktailList = jh.ReadCocktailsJsonToList();
            Cocktail c = new Cocktail();

            c.Name = AddCocktailNameField.Text;
            List <KeyValuePair <string, int> > listkvpBottles = new List <KeyValuePair <string, int> >();

            int bottleId = 2000;

            for (int i = 1; i < bottleList.Count + 1; i++)
            {
                string bottlenumber = "Percentage" + i.ToString();
                bottleId++;
                if (((TextBox)this.FindName(bottlenumber)).Text != "")
                {
                    if (Int32.Parse(((TextBox)this.FindName(bottlenumber)).Text) != 0)
                    {
                        KeyValuePair <string, int> kvpbottle = new KeyValuePair <string, int>(bottleList.Find(x => x.ID == (bottleId)).Name, Int32.Parse(((TextBox)this.FindName(bottlenumber)).Text));
                        listkvpBottles.Add(kvpbottle);
                    }
                }
            }
            c.Liquids = listkvpBottles;
            CocktailList.Add(c);

            jh.WriteListToJson(CocktailList);
            if (PopupAddCocktail.IsOpen)
            {
                PopupAddCocktail.IsOpen = false;
            }
        }
コード例 #16
0
ファイル: CollectionUI.cs プロジェクト: sjhkr2009/CodeSample
 void RemoveFiltering(Cocktail cocktail)
 {
     if (!filteringList.Contains(cocktail))
     {
         filteringList.Remove(cocktail);
     }
 }
コード例 #17
0
        public async Task AddIngredientsToCocktail_True_whenValid()
        {
            var options = Utils.GetOptions(nameof(AddIngredientsToCocktail_True_whenValid));

            var cocktail = new Cocktail()
            {
                Id = Utils.MySampleGuid(),
            };
            var ingredientId = Utils.MySampleGuid2();
            var mockMapper   = new Mock <ICocktailMapper>();

            var mockBarMapper = new Mock <IBarMapper>();

            using (var arrangeContext = new BCcontext(options))
            {
            }

            using (var context = new BCcontext(options))
            {
                var sut    = new CocktailsService(context, mockMapper.Object, mockBarMapper.Object);
                var result = await sut.AddIngredientsToCocktail(cocktail, ingredientId, 2);

                Assert.IsTrue(result);
            }
        }
コード例 #18
0
    // PUBLIC

    // PUBLIC STATIC

    // PRIVATE
    ///<summary>
    ///	DEMO
    ///</summary>
    private void _doDemoCustomCocktailClass()
    {
        // DECLARE
        _cocktail = new Cocktail();

        // USE
        Debug.Log("_cocktail: " + _cocktail);

        //  @-QUOTING
        Debug.Log("_cocktail.sampleAtQuoting : " + _cocktail.sampleAtQuoting);


        //	DELEGATES
        //		Delegates are useful when you want to execute code AFTER a process is complete.
        _cocktail.onInitialized += onInitialized;
        _cocktail.initialize();

        //	1. IN-LINE METHOD DECLARATION
        //		(with Lamda) - write inline function
        _cocktail.doLongProcess(
            () =>
        {
            Debug.Log("doLongProcess Complete1");
        }
            );
        //
        _cocktail.doLongProcess(_onLongProcessComplete);


        //	2. IN-LINE METHOD DECLARATION
        //		(with Func) - write inline function, with return value
        Func <int, int, float> addAndDivideThem = (my1_int, my2_int) => (my1_int + my2_int) / 2;
        float resultOfFunc_float = addAndDivideThem(11, 22);

        Debug.Log("Func<>: " + resultOfFunc_float);


        //	3. IN-LINE METHOD DECLARATION
        //		(with Predicate) - write inline functionn, (like Func but ALWAYS RETURNS BOOLEAN)
        Predicate <float> isGreaterThan5 = (my_float) => my_float > 5;
        bool resultOfPredicate_float     = isGreaterThan5(3);

        Debug.Log("Predicate<>: " + resultOfPredicate_float);


        //	4. IN-LINE METHOD DECLARATION
        //		(with Action) - write inline function, NEVER A RETURN VALUE
        Action <string, string> concatAndOutput = (my1_string, my2_string) => Debug.Log("Action: " + my1_string + "," + my2_string);

        concatAndOutput("Hello", "World");


        //	METHOD OVERLOADING
        _cocktail.overloadedMethod();
        _cocktail.overloadedMethod(10);


        //DESTRUCTOR
        _cocktail = null;
    }
コード例 #19
0
    public void Empty()
    {
        // transform
        // Debug.Log("Emptying glass!");
        // transform.localPosition = startPos;
        // if(drinkZ >= 0){
        //  drinkZ -= drainRate * Time.deltaTime;
        // }

        // if(drinkZ <= 0.01f && drinkY >= 0){
        //  drinkY -= drainRate * Time.deltaTime;
        // }

        // if(drinkZ <= 0.01f && drinkX >= 0){
        //  drinkX -= drainRate * Time.deltaTime;
        // }
        // transform.localScale = new Vector3 (drinkX, drinkY, drinkZ);
        Debug.Log("emptying!");
        posZ = startPosZ;
        transform.localScale = startScale;
        drinkX = 0;
        drinkY = 0;
        drinkZ = 0.01f;

        Cocktail thisCocktail = GetComponentInParent <Cocktail>();

        thisCocktail.EmptyCocktail();
    }
コード例 #20
0
        private static List <Cocktail> CreateCocktails(List <Dictionary <string, string> > rawIngredients)
        {
            var cocktailName = GetUniqueNames(rawIngredients, "Cocktail");

            var cocktails = new List <Cocktail>();
            var counter   = 1;


            foreach (var item in rawIngredients)
            {
                var alcohol = double.Parse(item["AlcoholPercentage"]);
                var image   = item["ImageURL"];

                var cocktail = new Cocktail()
                {
                    Id   = Guid.NewGuid(),
                    Name = item["Cocktail"],
                    AlcoholPercentage = Math.Round(alcohol, 1),
                    ImageURL          = image,
                    CreatedOn         = DateTime.UtcNow,
                };
                counter++;
                cocktails.Add(cocktail);
            }

            return(cocktails);
        }
コード例 #21
0
ファイル: CollectionUI.cs プロジェクト: sjhkr2009/CodeSample
 void AddFiltering(Cocktail cocktail)
 {
     if (!filteringList.Contains(cocktail))
     {
         filteringList.Add(cocktail);
     }
 }
コード例 #22
0
        public void MapFrom_Should_CorrectlyMapRatingFrom_Cocktail_To_CocktailDto_WhenCollectionIsNotEmpty()
        {
            //Arrange
            var sut = new CocktailDtoMapper();

            var cocktail = new Cocktail
            {
                Id        = Guid.NewGuid(),
                Name      = "testName",
                Info      = "testInfo",
                ImagePath = "testPath",
                Ratings   = new List <CocktailRating>()
                {
                    new CocktailRating
                    {
                        Value = 4.55,
                    }
                }
            };

            //Act
            var result = sut.MapFrom(cocktail);

            //Assert
            Assert.AreEqual(result.AverageRating, 4.55);
        }
コード例 #23
0
        public void MapFrom_Should_CorrectlyMapIngredientsFrom_Cocktail_To_CocktailDto()
        {
            //Arrange
            var sut = new CocktailDtoMapper();

            var cocktail = new Cocktail
            {
                Id                  = Guid.NewGuid(),
                Name                = "testName",
                Info                = "testInfo",
                ImagePath           = "testPath",
                CocktailIngredients = new List <CocktailIngredient>()
                {
                    new CocktailIngredient()
                    {
                        Ingredient = new Ingredient
                        {
                            Id   = Guid.NewGuid(),
                            Name = "djodjan"
                        },
                    },
                }
            };

            //Act
            var result = sut.MapFrom(cocktail);

            //Assert
            Assert.AreEqual(result.CocktailIngredients.First(), "djodjan");
        }
コード例 #24
0
        public async Task ReturnTrue_When_CocktailIsDeleted()
        {
            var options = Utils.GetOptions(nameof(ReturnTrue_When_CocktailIsDeleted));

            var cocktail = new Cocktail()
            {
                Id          = Guid.Parse("9ef97551-87f6-40ce-a88b-6c0e876ccb51"),
                Name        = "Margarita",
                Description = "The Margarita is one of the most " +
                              "popular cocktails in North America—for good reason. " +
                              "Combining the tang of lime and the sweetness of o" +
                              "range liqueur with the distinctive strength of " +
                              "tequila, our classic Margarita strikes all of the right keys."
            };

            using (var arrangeContext = new CMContext(options))
            {
                arrangeContext.Cocktails.Add(cocktail);
                await arrangeContext.SaveChangesAsync();
            }
            using (var assertContext = new CMContext(options))
            {
                var  sut        = new CocktailService(assertContext);
                Guid resultGuid = new Guid("9ef97551-87f6-40ce-a88b-6c0e876ccb51");
                var  result     = await sut.DeleteCocktail(resultGuid);

                Assert.IsTrue(result);
            }
        }
コード例 #25
0
        public async Task CocktailExists_True_whenExisting()
        {
            var options        = Utils.GetOptions(nameof(CocktailExists_True_whenExisting));
            var testCocktailId = Utils.MySampleGuid();
            var cocktail       = new Cocktail()
            {
                Id = testCocktailId
            };

            var mockMapper = new Mock <ICocktailMapper>();

            var mockBarMapper = new Mock <IBarMapper>();

            using (var arrangeContext = new BCcontext(options))
            {
                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.SaveChangesAsync();
            }

            //Act and Assert
            using (var context = new BCcontext(options))
            {
                var sut = new CocktailsService(context, mockMapper.Object, mockBarMapper.Object);

                var result = sut.CocktailExists(testCocktailId);
                Assert.IsTrue(result);
            }
        }
コード例 #26
0
        public async Task CocktailExistsByName_True_whenExisting()
        {
            var options       = Utils.GetOptions(nameof(CocktailExistsByName_True_whenExisting));
            var mockMapper    = new Mock <ICocktailMapper>();
            var mockBarMapper = new Mock <IBarMapper>();

            var testCocktailName = "TestCocktailName";
            var cocktail         = new Cocktail()
            {
                Name = testCocktailName
            };

            using (var arrangeContext = new BCcontext(options))
            {
                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.SaveChangesAsync();
            }

            //Act and Assert
            using (var context = new BCcontext(options))
            {
                var sut = new CocktailsService(context, mockMapper.Object, mockBarMapper.Object);

                var result = await sut.CocktailExistsByNameAsync("TestCocktailName");

                Assert.IsTrue(result);
            }
        }
コード例 #27
0
        public async Task CreateCocktail_Throws_When_NameExists()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(CreateCocktail_Throws_When_NameExists));

            var cocktail = new Cocktail
            {
                Id   = Guid.NewGuid(),
                Name = "Cuba Libre"
            };

            var cocktailDTO = new CocktailDTO
            {
                Name = "Cuba Libre"
            };

            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut = new CocktailServices(assertContext);

                await Assert.ThrowsExceptionAsync <ArgumentException>(() => sut.CreateCocktail(cocktailDTO));
            }
        }
コード例 #28
0
        public async Task LikeCocktailReview_WhenValidBarIdIsPassed()
        {
            var options = TestUtils.GetOptions(nameof(LikeCocktailReview_WhenValidBarIdIsPassed));

            var cocktail = new Cocktail {
                Id = "2"
            };
            var user = new AppUser {
                Id = "1"
            };
            var review1 = new CocktailReview {
                Id = "1", Rating = 6, Description = "0100101", UserId = user.Id, CocktailId = "2"
            };
            var review2 = new CocktailReview {
                Id = "2", Rating = 10, Description = "0100101", UserId = user.Id, CocktailId = "2"
            };

            //var like1 = new BarReviewLike { Id = "1", BarReviewID = "1" , AppUserID = "1"};
            //var like2 = new BarReviewLike { Id = "2", BarReviewID = "2", AppUserID="1" };
            using (var arrangeContext = new CMContext(options))
            {
                var sut = new ReviewServices(arrangeContext);
                arrangeContext.Add(cocktail);
                arrangeContext.Add(user);
                arrangeContext.Add(review1);
                arrangeContext.Add(review2);
                await arrangeContext.SaveChangesAsync();

                await sut.LikeCocktailReview(cocktail.Id, user.Id);

                Assert.AreEqual("1", arrangeContext.CocktailReviews.First().UserId);
                Assert.AreEqual("2", arrangeContext.CocktailReviews.First().CocktailId);
            }
        }
コード例 #29
0
        public void DeleteCocktailCommand_GetsCancelled_ByUser_WithAlert()
        {
            //arrange
            var cocktail1 = new Cocktail {
                Id          = Guid.Parse("00000000-1111-0000-0000-000000000001"),
                Name        = "Cosmopolitan",
                Ingredients = null
            };
            var cocktail2 = new Cocktail
            {
                Id          = Guid.Parse("00000000-1111-0000-0000-000000000002"),
                Name        = "Manhattan",
                Ingredients = null
            };

            var cocktails = new List <Cocktail>
            {
                cocktail1,
                cocktail2
            };

            coreMethodsMock.Setup(c => c.DisplayAlert(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(false));

            var vm = GetOverviewViewModel(cocktails);

            //act
            vm.DeleteCocktailCommand.Execute(cocktail1);

            //assert
            cocktailsServiceMock.Verify(e => e.DeleteCocktail(Guid.Parse("00000000-1111-0000-0000-000000000001")), Times.Never());
            Assert.Contains(cocktail1, vm.Cocktails);
        }
コード例 #30
0
        private void UpdateCocktailProducts(string[] selectedProducts, Cocktail cocktailToUpdate)
        {
            if (selectedProducts == null)
            {
                cocktailToUpdate.cocktailProducts = new List <CocktailProduct>();
                return;
            }

            var selectedProductsHS = new HashSet <string>(selectedProducts);
            var cocktailProducts   = new HashSet <int>
                                         (cocktailToUpdate.cocktailProducts.Select(c => c.product.Id));

            foreach (var product in _context.Product)
            {
                if (selectedProductsHS.Contains(product.Id.ToString()))
                {
                    if (!cocktailProducts.Contains(product.Id))
                    {
                        cocktailToUpdate.cocktailProducts.Add(new CocktailProduct {
                            cocktailId = cocktailToUpdate.Id, productId = product.Id
                        });
                    }
                }
                else
                {
                    if (cocktailProducts.Contains(product.Id))
                    {
                        CocktailProduct productToRemove = cocktailToUpdate.cocktailProducts.FirstOrDefault(i => i.productId == product.Id);
                        _context.Remove(productToRemove);
                    }
                }
            }
        }
コード例 #31
0
    // PUBLIC
    // PUBLIC STATIC
    // PRIVATE
    ///<summary>
    ///	DEMO
    ///</summary>
    private void _doDemoCustomCocktailClass()
    {
        // DECLARE
        _cocktail = new Cocktail ();

        // USE
        Debug.Log ("_cocktail: " + _cocktail);

        // 	@-QUOTING
        Debug.Log("_cocktail.sampleAtQuoting : "+ _cocktail.sampleAtQuoting);

        //	DELEGATES
        //		Delegates are useful when you want to execute code AFTER a process is complete.
        _cocktail.onInitialized += onInitialized;
        _cocktail.initialize();

        //	1. IN-LINE METHOD DECLARATION
        //		(with Lamda) - write inline function
        _cocktail.doLongProcess(
            () =>
            {
                Debug.Log("doLongProcess Complete1");
            }
            );
        //
        _cocktail.doLongProcess(_onLongProcessComplete);

        //	2. IN-LINE METHOD DECLARATION
        //		(with Func) - write inline function, with return value
        Func <int, int, float> addAndDivideThem = (my1_int, my2_int) => (my1_int + my2_int)/2;
        float resultOfFunc_float = addAndDivideThem (11, 22);
        Debug.Log("Func<>: " + resultOfFunc_float);

        //	3. IN-LINE METHOD DECLARATION
        //		(with Predicate) - write inline functionn, (like Func but ALWAYS RETURNS BOOLEAN)
        Predicate <float> isGreaterThan5 = (my_float) => my_float > 5;
        bool resultOfPredicate_float = isGreaterThan5 (3);
        Debug.Log("Predicate<>: " + resultOfPredicate_float);

        //	4. IN-LINE METHOD DECLARATION
        //		(with Action) - write inline function, NEVER A RETURN VALUE
        Action<string, string> concatAndOutput = (my1_string, my2_string) => Debug.Log ("Action: " + my1_string + "," + my2_string);
        concatAndOutput ("Hello", "World");

        //	METHOD OVERLOADING
        _cocktail.overloadedMethod();
        _cocktail.overloadedMethod(10);

        //DESTRUCTOR
        _cocktail = null;
    }