Пример #1
0
        public void OnNavigatedTo_WithoutParameters_ShouldCreateNewRecipe()
        {
            // Arrange
            var expectedRecipe = new Recipe();

            DatabaseServiceMock.Setup(databaseService => databaseService.GetRecipeAsync(Guid.Empty)).Verifiable();

            // Act
            EditRecipePageViewModel.OnNavigatedTo(null);

            // Assert
            DatabaseServiceMock.Verify(databaseService => databaseService.GetRecipeAsync(Guid.Empty), Times.Never, "Function IDatabaseService.GetRecipeASync for selected recipe called atleast once.");
            Assert.AreEqual(expectedRecipe, EditRecipePageViewModel.Recipe, "Attribute EditRecipePageViewModel.Recipe is not the expected value.");
            Assert.IsTrue(EditRecipePageViewModel.CreateMode, "Attribute EditRecipePageViewModel.CreateMode is false, but should be true.");
        }
Пример #2
0
        public void OnNavigatedTo_WithCorrectParameters_ShouldSetSelectedRecipe()
        {
            // Arrange
            var parameters = new NavigationParameters
            {
                { "SelectedRecipe", SelectedRecipe.Id }
            };

            DatabaseServiceMock.Setup(databaseService => databaseService.GetRecipeAsync(SelectedRecipe.Id)).Returns(Task.Run(() => SelectedRecipe));

            // Act
            EditRecipePageViewModel.OnNavigatedTo(parameters);

            // Assert
            DatabaseServiceMock.Verify(databaseService => databaseService.GetRecipeAsync(SelectedRecipe.Id), Times.Once, "Function IDatabaseService.GetRecipeAsync for selected recipe not called exactly once.");
            Assert.AreEqual(SelectedRecipe, EditRecipePageViewModel.Recipe, "Attribute EditRecipePageViewModel.Recipe is not the expected value.");
            Assert.IsFalse(EditRecipePageViewModel.CreateMode, "Attribute EditRecipePageViewModel.CreateMode is true, but should be false.");
        }
Пример #3
0
        public void OnNavigatedTo_WithIncorrectParameterName_ShouldCreateNewRecipe()
        {
            // Arrange
            var expectedRecipe = new Recipe();
            var parameters     = new NavigationParameters
            {
                { "SelectedRecipeId", SelectedRecipe.Id }
            };

            DatabaseServiceMock.Setup(databaseService => databaseService.GetRecipeAsync(SelectedRecipe.Id)).Returns(Task.Run(() => SelectedRecipe));

            // Act
            EditRecipePageViewModel.OnNavigatedTo(parameters);

            // Assert
            DatabaseServiceMock.Verify(databaseService => databaseService.GetRecipeAsync(SelectedRecipe.Id), Times.Never, "Function IDatabaseService.GetRecipeASync for selected recipe called atleast once.");
            Assert.AreEqual(expectedRecipe, EditRecipePageViewModel.Recipe, "Attribute EditRecipePageViewModel.Recipe is not the expected value.");
            Assert.IsTrue(EditRecipePageViewModel.CreateMode, "Attribute EditRecipePageViewModel.CreateMode is false, but should be true.");
        }
Пример #4
0
        public void OnNavigatedTo_WithInvalidDataTypeParameters_ShouldCreateNewRecipe()
        {
            // Arrange
            var expectedRecipe = new Recipe();
            var id             = Fixture.Create <double>();
            var parameters     = new NavigationParameters
            {
                { "SelectedRecipe", id }
            };

            DatabaseServiceMock.Setup(databaseService => databaseService.GetRecipeAsync(Guid.Empty)).Returns(() => null);

            // Act
            EditRecipePageViewModel.OnNavigatedTo(parameters);

            // Assert
            DatabaseServiceMock.Verify(databaseService => databaseService.GetRecipeAsync(Guid.Empty), Times.Never, "Function IDatabaseService.GetRecipeASync for selected recipe called atleast once.");
            Assert.AreEqual(expectedRecipe, EditRecipePageViewModel.Recipe, "Attribute EditRecipePageViewModel.Recipe is not the expected value.");
            Assert.IsTrue(EditRecipePageViewModel.CreateMode, "Attribute EditRecipePageViewModel.CreateMode is false, but should be true.");
        }