/// <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); }
/// <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); }
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 <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 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)); }
/// <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> /// 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 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)); }
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)); }
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)); }
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)); }