Exemplo n.º 1
0
        public void ValidateFieldNamesTest()
        {
            EntityChangeValidator <CardFieldDefinition> changeValidator = new EntityChangeValidator <CardFieldDefinition>();

            changeValidator.Register(nameof(CardFieldDefinition.FieldName), new CardFieldDefinitionFieldNameValidator());
            CardTemplateChangeValidator validator = new CardTemplateChangeValidator(changeValidator);

            validator.Register(nameof(CardTemplate.Title), new CardTemplateTitleValidator());

            CardTemplate template = new CardTemplate()
            {
                Title = "test"
            };
            CardFieldDefinition fieldDefinition = new CardFieldDefinition();

            template.FieldDefinitions.Add(fieldDefinition);

            string error = validator.Validate <string>(nameof(CardFieldDefinition.FieldName), fieldDefinition, null);

            Assert.IsFalse(string.IsNullOrEmpty(error));
            error = validator.Validate(nameof(CardFieldDefinition.FieldName), fieldDefinition, "");
            Assert.IsFalse(string.IsNullOrEmpty(error));
            error = validator.Validate(nameof(CardFieldDefinition.FieldName), fieldDefinition, "test");
            Assert.IsTrue(string.IsNullOrEmpty(error));
        }
        public async Task DoesValidateFieldValuePropertiesTest()
        {
            Deck deck = new Deck()
            {
                DeckId = 1, Title = "test", DefaultCardTemplateId = 1
            };
            CardFieldDefinition field = new CardFieldDefinition()
            {
                CardTemplateId = 1, FieldId = 1, FieldName = "Field 1", IsRequired = true
            };
            CardTemplate template = new CardTemplate()
            {
                CardTemplateId = 1, Title = "test1"
            };

            template.FieldDefinitions.Add(field);
            EntityChangeValidator <CardField> fieldChangeValidator = new EntityChangeValidator <CardField>();

            fieldChangeValidator.Register(nameof(CardField.Value), new CardFieldValueValidator());
            CardChangeValidator validator = new CardChangeValidator(fieldChangeValidator);
            ApiConnectorMock    mock      = CreateMockForInitialize(false, true, deck, null, new List <CardTemplate>()
            {
                template
            });
            CardEditViewModel viewModel = new CardEditViewModel(navigationManagerMock, mock, validator);
            await viewModel.InitializeAsync();

            viewModel.FieldValueProperties[0].Value = null;
            Assert.IsFalse(string.IsNullOrEmpty(viewModel.FieldValueProperties[0].ErrorText));
            viewModel.FieldValueProperties[0].Value = "test";
            Assert.IsTrue(string.IsNullOrEmpty(viewModel.FieldValueProperties[0].ErrorText));
        }
        public void ValidateFieldNamesTest()
        {
            EntityChangeValidator <CardField> changeValidator = new EntityChangeValidator <CardField>();

            changeValidator.Register(nameof(CardField.Value), new CardFieldValueValidator());
            CardChangeValidator validator = new CardChangeValidator(changeValidator);
            CardField           field     = new CardField
            {
                CardFieldDefinition = new CardFieldDefinition()
                {
                    IsRequired = false
                }
            };

            string error = validator.Validate <string>(nameof(CardField.Value), field, null);

            Assert.IsTrue(string.IsNullOrEmpty(error));
            error = validator.Validate(nameof(CardField.Value), field, "");
            Assert.IsTrue(string.IsNullOrEmpty(error));

            field.CardFieldDefinition.IsRequired = true;
            error = validator.Validate <string>(nameof(CardField.Value), field, null);
            Assert.IsFalse(string.IsNullOrEmpty(error));
            error = validator.Validate(nameof(CardField.Value), field, "");
            Assert.IsFalse(string.IsNullOrEmpty(error));
            error = validator.Validate(nameof(CardField.Value), field, "test");
            Assert.IsTrue(string.IsNullOrEmpty(error));
        }
Exemplo n.º 4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="navigationManager">NavigationManager (Injected)</param>
 /// <param name="authenticationStateProvider">AuthenticationStateProvider (Injected)</param>
 /// <param name="apiConnector">API Connector (Injected)</param>
 /// <param name="changeValidator">EntityChangeValdiator (Injected)</param>
 public IdentityViewModelBase(NavigationManager navigationManager, AuthenticationStateProvider authenticationStateProvider,
                              IApiConnector apiConnector, EntityChangeValidator <User> changeValidator)
     : base(navigationManager)
 {
     this.changeValidator        = changeValidator;
     ApiConnector                = apiConnector;
     AuthenticationStateProvider = authenticationStateProvider as CustomAuthenticationStateProvider;
 }
Exemplo n.º 5
0
        /// <summary>
        /// Adds the Property validator for <see cref="User"/>
        /// </summary>
        /// <param name="services">Service-collection</param>
        public static void AddUserPropertyValidator(this IServiceCollection services)
        {
            EntityChangeValidator <User> validator = new EntityChangeValidator <User>();

            validator.Register(nameof(User.Email), new UserEmailValidator());
            validator.Register(nameof(User.Password), new UserPasswordValidator());
            services.AddSingleton(typeof(EntityChangeValidator <User>), validator);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Adds the Property validator for <see cref="Deck"/>
        /// </summary>
        /// <param name="services">Service-collection</param>
        public static void AddDecksPropertyValidator(this IServiceCollection services)
        {
            EntityChangeValidator <Deck> validator = new EntityChangeValidator <Deck>();

            validator.Register(nameof(Deck.DefaultCardTemplateId), new DeckDefaultCardTemplateIdValidator());
            validator.Register(nameof(Deck.Title), new DeckTitleValidator());
            services.AddSingleton(typeof(EntityChangeValidator <Deck>), validator);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Adds the Property validator for <see cref="CardTemplate"/>
        /// </summary>
        /// <param name="services">Service-collection</param>
        public static void AddCardTemplatePropertyValidator(this IServiceCollection services)
        {
            EntityChangeValidator <CardFieldDefinition> fieldDefinitionChangeValidator = new EntityChangeValidator <CardFieldDefinition>();

            fieldDefinitionChangeValidator.Register(nameof(CardFieldDefinition.FieldName), new CardFieldDefinitionFieldNameValidator());
            EntityChangeValidator <CardTemplate> validator = new CardTemplateChangeValidator(fieldDefinitionChangeValidator);

            validator.Register(nameof(CardTemplate.Title), new CardTemplateTitleValidator());
            services.AddSingleton(typeof(EntityChangeValidator <CardTemplate>), validator);
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="navigationManager">NavigationManager (Injected)</param>
 /// <param name="authenticationStateProvider">AuthenticationStateProvider (Injected)</param>
 /// <param name="apiConnector">API Connector (Injected)</param>
 /// <param name="changeValidator">EntityChangeValdiator (Injected)</param>
 public LoginViewModel(NavigationManager navigationManager, AuthenticationStateProvider authenticationStateProvider,
                       IApiConnector apiConnector, EntityChangeValidator <User> changeValidator)
     : base(navigationManager, authenticationStateProvider, apiConnector, changeValidator)
 {
     LoginAsGuestUserCommand = new Command()
     {
         ToolTip       = Messages.LoginAsGuestUserCommandToolTip,
         CommandText   = Messages.LoginAsGuestUser,
         ExecuteAction = async(parameter) => await LoginAsGuestUser()
     };
 }
Exemplo n.º 9
0
        /// <summary>
        /// Adds the Property validator for <see cref="CardTemplate"/>
        /// </summary>
        /// <param name="services">Service-collection</param>
        public static void AddCardPropertyValidator(this IServiceCollection services)
        {
            EntityChangeValidator <CardField> fieldChangeValidator = new EntityChangeValidator <CardField>();

            fieldChangeValidator.Register(nameof(CardField.Value), new CardFieldValueValidator());
            EntityChangeValidator <Card> validator = new CardChangeValidator(fieldChangeValidator);

            validator.Register(nameof(Card.CardTemplateId), new CardCardTemplateIdValidator());
            validator.Register(nameof(Card.DeckId), new CardDeckIdValidator());
            services.AddSingleton(typeof(EntityChangeValidator <Card>), validator);
        }
        public void ValidateCardTemplateIdTest()
        {
            EntityChangeValidator <CardField> changeValidator = new EntityChangeValidator <CardField>();
            CardChangeValidator validator = new CardChangeValidator(changeValidator);

            validator.Register(nameof(Card.DeckId), new CardCardTemplateIdValidator());

            string error = validator.Validate <long>(nameof(Card.DeckId), new Card(), default);

            Assert.IsFalse(string.IsNullOrEmpty(error));
            error = validator.Validate(nameof(Card.DeckId), new Card(), (long)1);
            Assert.IsTrue(string.IsNullOrEmpty(error));
        }
        public async Task DoesValidateFieldNamePropertiesTest()
        {
            ApiConnectorMock mock = CreateMockForInitialize(false, null);
            EntityChangeValidator <CardFieldDefinition> fieldValidator = new EntityChangeValidator <CardFieldDefinition>();

            fieldValidator.Register(nameof(CardFieldDefinition.FieldName), new CardFieldDefinitionFieldNameValidator());
            CardTemplateChangeValidator validator = new CardTemplateChangeValidator(fieldValidator);
            CardTemplateEditViewModel   viewModel = new CardTemplateEditViewModel(navigationManagerMock, mock, validator);
            await viewModel.InitializeAsync();

            viewModel.FieldNameProperties[0].Value = null;
            Assert.IsFalse(string.IsNullOrEmpty(viewModel.FieldNameProperties[0].ErrorText));
            viewModel.FieldNameProperties[0].Value = "test";
            Assert.IsTrue(string.IsNullOrEmpty(viewModel.FieldNameProperties[0].ErrorText));
        }
Exemplo n.º 12
0
        public void DoesCallPropertyValidatorTest()
        {
            TestPropertyValidator        propertyValidator = new TestPropertyValidator();
            EntityChangeValidator <Card> changeValidator   = new EntityChangeValidator <Card>();

            changeValidator.Register(nameof(Card.CardId), propertyValidator);
            Card card = new Card();

            string result = changeValidator.Validate(nameof(Card.CardId), card, (long)4);

            Assert.AreEqual("test", result);
            Assert.AreEqual(4, propertyValidator.NewValue);
            Assert.AreSame(card, propertyValidator.Card);

            result = changeValidator.Validate(nameof(Card.CardTemplateId), card, (long)4);
            Assert.IsTrue(string.IsNullOrEmpty(result));
        }
        public async Task DoesNotSubmitIfValidationReturnsErrorTest()
        {
            User                         user      = new User();
            ApiConnectorMock             mock      = new ApiConnectorMock();
            EntityChangeValidator <User> validator = new EntityChangeValidator <User>();

            validator.Register(nameof(User.Email), new UserEmailValidator());
            LocalStorageServiceMock           localStorageServiceMock = new LocalStorageServiceMock();
            CustomAuthenticationStateProvider authenticationStateProvider
                = new CustomAuthenticationStateProvider(localStorageServiceMock, mock, navigationManagerMock);
            TestViewModel viewModel = new TestViewModel(navigationManagerMock, authenticationStateProvider, mock, validator)
            {
                User = user
            };
            await viewModel.SubmitAsync();

            Assert.IsFalse(viewModel.WasSubmitted);
            Assert.IsFalse(viewModel.IsBusy);
        }
        public async Task DoesValidateTitlePropertyTest()
        {
            ApiConnectorMock mock = CreateMockForInitialize(false, null);
            EntityChangeValidator <CardTemplate> validator = new EntityChangeValidator <CardTemplate>();

            validator.Register(nameof(CardTemplate.Title), new CardTemplateTitleValidator());
            CardTemplateEditViewModel viewModel = new CardTemplateEditViewModel(navigationManagerMock, mock, validator);
            await viewModel.InitializeAsync();

            viewModel.TitleProperty.Value = null;
            Assert.IsFalse(string.IsNullOrEmpty(viewModel.TitleProperty.ErrorText));

            mock      = CreateMockForInitialize(false, null);
            viewModel = new CardTemplateEditViewModel(navigationManagerMock, mock, validator);
            await viewModel.InitializeAsync();

            viewModel.TitleProperty.Value = "test";
            Assert.IsTrue(string.IsNullOrEmpty(viewModel.TitleProperty.ErrorText));
        }
Exemplo n.º 15
0
        public async Task DoesValidateTitlePropertyTest()
        {
            EntityChangeValidator <Deck> validator = new EntityChangeValidator <Deck>();

            validator.Register(nameof(Deck.Title), new DeckTitleValidator());
            CardTemplate template = new CardTemplate()
            {
                CardTemplateId = 1, Title = "test"
            };
            ApiConnectorMock mock = CreateMockForInitialize(false, true, null, new List <CardTemplate>()
            {
                template
            });
            DeckEditViewModel viewModel = new DeckEditViewModel(navigationManagerMock, mock, validator);
            await viewModel.InitializeAsync();

            viewModel.TitleProperty.Value = null;
            Assert.IsFalse(string.IsNullOrEmpty(viewModel.TitleProperty.ErrorText));
            viewModel.TitleProperty.Value = "test";
            Assert.IsTrue(string.IsNullOrEmpty(viewModel.TitleProperty.ErrorText));
        }
        public void ValidateUserTest()
        {
            User                              user = new User();
            ApiConnectorMock                  mock = new ApiConnectorMock();
            LocalStorageServiceMock           localStorageServiceMock = new LocalStorageServiceMock();
            CustomAuthenticationStateProvider authenticationStateProvider
                = new CustomAuthenticationStateProvider(localStorageServiceMock, mock, navigationManagerMock);
            EntityChangeValidator <User> validator = new EntityChangeValidator <User>();

            validator.Register(nameof(user.Email), new UserEmailValidator());
            validator.Register(nameof(user.Password), new UserPasswordValidator());
            TestViewModel viewModel = new TestViewModel(navigationManagerMock, authenticationStateProvider, mock, validator)
            {
                User = user
            };

            //Validates empty email
            user.Password = "******";
            viewModel.ExecuteValidateUser();
            Assert.IsTrue(viewModel.HasEmailError);
            Assert.IsFalse(viewModel.HasPasswordError);
            Assert.IsFalse(string.IsNullOrEmpty(viewModel.ErrorMessage));

            //Validates empty password
            user.Email    = "test";
            user.Password = null;
            viewModel.ExecuteValidateUser();
            Assert.IsFalse(viewModel.HasEmailError);
            Assert.IsTrue(viewModel.HasPasswordError);
            Assert.IsFalse(string.IsNullOrEmpty(viewModel.ErrorMessage));

            //No error
            user.Email    = "test";
            user.Password = "******";
            viewModel.ExecuteValidateUser();
            Assert.IsFalse(viewModel.HasEmailError);
            Assert.IsFalse(viewModel.HasPasswordError);
            Assert.IsTrue(string.IsNullOrEmpty(viewModel.ErrorMessage));
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="fieldChangeValidator">FieldChangeValidator (Injected)</param>
 public CardChangeValidator(EntityChangeValidator <CardField> fieldChangeValidator)
 {
     this.fieldChangeValidator = fieldChangeValidator;
 }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="navigationManager">NavigationManager (Injected)</param>
        /// <param name="authenticationStateProvider">AuthenticationStateProvider (Injected)</param>
        /// <param name="apiConnector">API Connector (Injected)</param>
        /// <param name="changeValidator">EntityChangeValdiator (Injected)</param>

        public SignupViewModel(NavigationManager navigationManager, AuthenticationStateProvider authenticationStateProvider,
                               IApiConnector apiConnector, EntityChangeValidator <User> changeValidator)
            : base(navigationManager, authenticationStateProvider, apiConnector, changeValidator)
        {
        }
Exemplo n.º 19
0
 public TestViewModel(NavigationManager navigationManager, IApiConnector apiConnector, EntityChangeValidator <Card> changeValidator)
     : base(navigationManager, apiConnector, changeValidator)
 {
 }
Exemplo n.º 20
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="fieldDefinitionChangeValidator">FieldDefinitionChangeValidator (Injected)</param>
 public CardTemplateChangeValidator(EntityChangeValidator <CardFieldDefinition> fieldDefinitionChangeValidator)
 {
     this.fieldDefinitionChangeValidator = fieldDefinitionChangeValidator;
 }