public void ValidateObject_Object_ValidationContext_Bool_02() { var dummy = new Dummy(); var ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx, false); } catch (Exception ex) { Assert.Fail("#A1 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } try { Validator.ValidateObject(dummy, ctx, true); } catch (Exception ex) { Assert.Fail("#A2 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy = new Dummy { NameField = null }; AssertExtensions.Throws <ArgumentException> (() => { // The instance provided must match the ObjectInstance on the ValidationContext supplied. Validator.ValidateObject(dummy, ctx, false); }, "#A3-1"); AssertExtensions.Throws <ArgumentException> (() => { // The instance provided must match the ObjectInstance on the ValidationContext supplied. Validator.ValidateObject(dummy, ctx, true); }, "#A3-2"); // Fields are ignored ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx, false); } catch (Exception ex) { Assert.Fail("#A4-1 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } try { Validator.ValidateObject(dummy, ctx, true); } catch (Exception ex) { Assert.Fail("#A4-2 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy = new Dummy { RequiredDummyField = null }; ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx, false); } catch (Exception ex) { Assert.Fail("#A5-1 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } try { Validator.ValidateObject(dummy, ctx, true); } catch (Exception ex) { Assert.Fail("#A5-2 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } // Required properties existence is validated dummy = new Dummy { RequiredDummyProperty = null }; ctx = new ValidationContext(dummy, null, null); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx, false); }, "#A6-1"); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx, true); }, "#A6-2"); dummy = new Dummy { NameProperty = null }; ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx, false); } catch (Exception ex) { Assert.Fail("#A7 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } // NameProperty is null, that causes the StringLength validator to skip its tests try { Validator.ValidateObject(dummy, ctx, true); } catch (Exception ex) { Assert.Fail("#A8 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy.NameProperty = "0"; AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx, true); }, "#A9"); dummy.NameProperty = "name too long (invalid value)"; AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx, true); }, "#A10"); dummy = new Dummy { MinMaxProperty = 0 }; ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx, false); } catch (Exception ex) { Assert.Fail("#A11 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx, true); }, "#A12"); dummy = new Dummy { FailValidation = true }; ctx = new ValidationContext(dummy, null, null); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx, false); }, "#A13-1"); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx, true); }, "#A13-2"); var dummy2 = new DummyWithException(); ctx = new ValidationContext(dummy2, null, null); AssertExtensions.Throws <ApplicationException> (() => { Validator.ValidateObject(dummy2, ctx, true); }, "#A14"); var dummy3 = new DummyMultipleCustomValidators(); ctx = new ValidationContext(dummy3, null, null); try { Validator.ValidateObject(dummy3, ctx, false); } catch (Exception ex) { Assert.Fail("#A9 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } try { Validator.ValidateObject(dummy3, ctx, true); } catch (ValidationException ex) { Assert.AreEqual("FirstPropertyValidationMethod", ex.Message, "#A10"); } catch (Exception ex) { Assert.Fail("#A10 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } }
public void ValidateObject_Object_ValidationContext_Bool_02 () { var dummy = new Dummy (); var ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx, false); } catch (Exception ex) { Assert.Fail ("#A1 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } try { Validator.ValidateObject (dummy, ctx, true); } catch (Exception ex) { Assert.Fail ("#A2 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy = new Dummy { NameField = null }; AssertExtensions.Throws<ArgumentException> (() => { // The instance provided must match the ObjectInstance on the ValidationContext supplied. Validator.ValidateObject (dummy, ctx, false); }, "#A3-1"); AssertExtensions.Throws<ArgumentException> (() => { // The instance provided must match the ObjectInstance on the ValidationContext supplied. Validator.ValidateObject (dummy, ctx, true); }, "#A3-2"); // Fields are ignored ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx, false); } catch (Exception ex) { Assert.Fail ("#A4-1 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } try { Validator.ValidateObject (dummy, ctx, true); } catch (Exception ex) { Assert.Fail ("#A4-2 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy = new Dummy { RequiredDummyField = null }; ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx, false); } catch (Exception ex) { Assert.Fail ("#A5-1 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } try { Validator.ValidateObject (dummy, ctx, true); } catch (Exception ex) { Assert.Fail ("#A5-2 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } // Required properties existence is validated dummy = new Dummy { RequiredDummyProperty = null }; ctx = new ValidationContext (dummy, null, null); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx, false); }, "#A6-1"); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx, true); }, "#A6-2"); dummy = new Dummy { NameProperty = null }; ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx, false); } catch (Exception ex) { Assert.Fail ("#A7 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } // NameProperty is null, that causes the StringLength validator to skip its tests try { Validator.ValidateObject (dummy, ctx, true); } catch (Exception ex) { Assert.Fail ("#A8 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy.NameProperty = "0"; AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx, true); }, "#A9"); dummy.NameProperty = "name too long (invalid value)"; AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx, true); }, "#A10"); dummy = new Dummy { MinMaxProperty = 0 }; ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx, false); } catch (Exception ex) { Assert.Fail ("#A11 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx, true); }, "#A12"); dummy = new Dummy { FailValidation = true }; ctx = new ValidationContext (dummy, null, null); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx, false); }, "#A13-1"); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx, true); }, "#A13-2"); var dummy2 = new DummyWithException (); ctx = new ValidationContext (dummy2, null, null); AssertExtensions.Throws<ApplicationException> (() => { Validator.ValidateObject (dummy2, ctx, true); }, "#A14"); var dummy3 = new DummyMultipleCustomValidators (); ctx = new ValidationContext (dummy3, null, null); try { Validator.ValidateObject (dummy3, ctx, false); } catch (Exception ex) { Assert.Fail ("#A9 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } try { Validator.ValidateObject (dummy3, ctx, true); } catch (ValidationException ex) { Assert.AreEqual ("FirstPropertyValidationMethod", ex.Message, "#A10"); } catch (Exception ex) { Assert.Fail ("#A10 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } }
public void ValidateObject_Object_ValidationContext_02() { var dummy = new Dummy(); var ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx); } catch (Exception ex) { Assert.Fail("#A1 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy = new Dummy { NameField = null }; AssertExtensions.Throws <ArgumentException> (() => { // The instance provided must match the ObjectInstance on the ValidationContext supplied. Validator.ValidateObject(dummy, ctx); }, "#A2"); // Fields are ignored ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx); } catch (Exception ex) { Assert.Fail("#A3 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy = new Dummy { RequiredDummyField = null }; ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx); } catch (Exception ex) { Assert.Fail("#A4 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy = new Dummy { RequiredDummyProperty = null }; ctx = new ValidationContext(dummy, null, null); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx); }, "#A5"); // validation attributes other than Required are ignored dummy = new Dummy { NameProperty = null }; ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx); } catch (Exception ex) { Assert.Fail("#A6 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy = new Dummy { MinMaxProperty = 0 }; ctx = new ValidationContext(dummy, null, null); try { Validator.ValidateObject(dummy, ctx); } catch (Exception ex) { Assert.Fail("#A7 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy = new Dummy { FailValidation = true }; ctx = new ValidationContext(dummy, null, null); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateObject(dummy, ctx); }, "#A8"); var dummy2 = new DummyMultipleCustomValidators(); ctx = new ValidationContext(dummy2, null, null); try { Validator.ValidateObject(dummy2, ctx); } catch (Exception ex) { Assert.Fail("#A9 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } }
public void ValidateObject_Object_ValidationContext_02 () { var dummy = new Dummy (); var ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx); } catch (Exception ex) { Assert.Fail ("#A1 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy = new Dummy { NameField = null }; AssertExtensions.Throws<ArgumentException> (() => { // The instance provided must match the ObjectInstance on the ValidationContext supplied. Validator.ValidateObject (dummy, ctx); }, "#A2"); // Fields are ignored ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx); } catch (Exception ex) { Assert.Fail ("#A3 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy = new Dummy { RequiredDummyField = null }; ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx); } catch (Exception ex) { Assert.Fail ("#A4 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy = new Dummy { RequiredDummyProperty = null }; ctx = new ValidationContext (dummy, null, null); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx); }, "#A5"); // validation attributes other than Required are ignored dummy = new Dummy { NameProperty = null }; ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx); } catch (Exception ex) { Assert.Fail ("#A6 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy = new Dummy { MinMaxProperty = 0 }; ctx = new ValidationContext (dummy, null, null); try { Validator.ValidateObject (dummy, ctx); } catch (Exception ex) { Assert.Fail ("#A7 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy = new Dummy { FailValidation = true }; ctx = new ValidationContext (dummy, null, null); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateObject (dummy, ctx); }, "#A8"); var dummy2 = new DummyMultipleCustomValidators (); ctx = new ValidationContext (dummy2, null, null); try { Validator.ValidateObject (dummy2, ctx); } catch (Exception ex) { Assert.Fail ("#A9 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } }