public void ValidatorAcceptsMatchingObject()
        {
            UserGenerator.RegisterAndLoginUserWithRole(Role.Analyst, adminDataApiClient, out var dataApiClient);

            var validatorDefinition = new ValidatorDefinition(nameof(UnitTestDataObject2), ValidatorType.TextRules, "Number IS LESS THAN 150");
            var testObject          = new UnitTestDataObject2
            {
                Name   = "Hello world!",
                Number = 42
            };
            var objectId = "ValidatorAcceptsMatchingObject";

            try
            {
                AssertStatusCode(
                    () => dataApiClient.SubmitValidatorAsync(validatorDefinition).Wait(),
                    HttpStatusCode.OK, "Could not submit validator");
                AssertStatusCode(
                    () => dataApiClient.ReplaceAsync(testObject, objectId).Wait(),
                    HttpStatusCode.OK, "Could not submit data");
            }
            finally
            {
                dataApiClient.DeleteAsync <UnitTestDataObject2>(objectId).Wait();
                dataApiClient.DeleteValidatorAsync(validatorDefinition.Id).Wait();
                UserGenerator.DeleteUser(dataApiClient);
            }
        }
        public void ValidatorRejectsNonMatchingObject()
        {
            UserGenerator.RegisterAndLoginUserWithRole(Role.Analyst, adminDataApiClient, out var dataApiClient);

            var validatorDefinition = new ValidatorDefinition(nameof(UnitTestDataObject2), ValidatorType.TextRules, "Number IS LESS THAN 150");
            var testObject          = new UnitTestDataObject2
            {
                Name   = "Hello world!",
                Number = 250
            };
            var objectId = "ValidatorRejectsNonMatchingObject";

            try
            {
                AssertStatusCode(
                    () => dataApiClient.InsertAsync(testObject, objectId).Wait(),
                    HttpStatusCode.OK, "Submit data before validator");
                AssertStatusCode(
                    () => dataApiClient.SubmitValidatorAsync(validatorDefinition).Wait(),
                    HttpStatusCode.OK, "Could not submit validator");
                try
                {
                    AssertStatusCode(
                        () => adminDataApiClient.ApproveValidatorAsync(validatorDefinition.Id).Wait(),
                        HttpStatusCode.OK, "Approve validator");
                    AssertStatusCode(
                        () => dataApiClient.ApplyValidatorAsync(testObject).Wait(),
                        HttpStatusCode.BadRequest, "Apply validator");
                    testObject.Number = 251;
                    AssertStatusCode(
                        () => dataApiClient.ReplaceAsync(testObject, objectId).Wait(),
                        HttpStatusCode.BadRequest, "Submit data after validator");
                    var retreivedObject = dataApiClient.GetAsync <UnitTestDataObject2>(objectId).Result;
                    Assert.That(retreivedObject.Number, Is.EqualTo(250));
                }
                finally
                {
                    dataApiClient.DeleteValidatorAsync(validatorDefinition.Id).Wait();
                }
            }
            finally
            {
                dataApiClient.DeleteAsync <UnitTestDataObject2>(objectId).Wait();
                UserGenerator.DeleteUser(dataApiClient);
            }
        }