Пример #1
0
        public void ShouldNotAllowAnEmptyName()
        {
            RepositoryItemBuilder item = DefaultItem.WithName(string.Empty);

            ExpectConstraintViolation(item);
            Validate(item, "Empty name not detected.");
        }
Пример #2
0
        protected static RepositoryItem AddChild(RepositoryItem parent, RepositoryItemBuilder itemBuilder)
        {
            RepositoryItem newItem = itemBuilder.Build();

            parent.AddOrReplaceChild(newItem);
            return(newItem);
        }
        public void ShouldNotAllowAnySubpackages()
        {
            RepositoryItemBuilder aPackage       = APackage;
            RepositoryItemBuilder elementLibrary = DefaultItem.WithChild(aPackage);

            VerifyConstraintViolations(elementLibrary, aPackage);
        }
Пример #4
0
        public void ShouldNotAllowElements()
        {
            RepositoryItemBuilder element1 = AnElement;
            RepositoryItemBuilder element2 = AnElement;
            RepositoryItemBuilder bLibrary = DefaultItem.WithChild(element1).WithChild(element2);

            VerifyConstraintViolations(bLibrary, element1, element2);
        }
Пример #5
0
 protected void VerifyConstraintViolations(RepositoryItemBuilder validatedItem, params RepositoryItemBuilder[] offendingItems)
 {
     foreach (RepositoryItemBuilder item in offendingItems)
     {
         ExpectConstraintViolation(item);
     }
     Validate(validatedItem);
 }
Пример #6
0
 public void ShouldDetectEmptyTaggedValues()
 {
     foreach (TaggedValues taggedValue in requiredTaggedValues)
     {
         RepositoryItemBuilder item = DefaultItem.WithTaggedValue(taggedValue, string.Empty);
         ExpectConstraintViolation(item);
         Validate(item, "Empty required Tagged Value '" + taggedValue + "' not detected.");
     }
 }
Пример #7
0
 public void ShouldDetectUndefinedTaggedValues()
 {
     foreach (TaggedValues taggedValue in definedTaggedValues)
     {
         RepositoryItemBuilder item = DefaultItem.WithoutTaggedValue(taggedValue);
         ExpectConstraintViolation(item);
         Validate(item, "Undefined Tagged Value '" + taggedValue + "' not detected.");
     }
 }
        public void ShouldOnlyAllowElementsWithTheProperStereotype()
        {
            RepositoryItemBuilder element1       = AnElement.WithStereotype(elementStereotype);
            RepositoryItemBuilder element2       = AnElement.WithStereotype("other than " + elementStereotype);
            RepositoryItemBuilder elementLibrary = DefaultItem.WithChild(element1).WithChild(element2);

            ExpectConstraintViolation(element2);
            Validate(elementLibrary);
        }
Пример #9
0
        public void ShouldOnlyAllowBusinessLibrariesAsSubpackages()
        {
            RepositoryItemBuilder invalidSubPackage = APackage.WithStereotype("other-that-a-business-library-stereotype");
            RepositoryItemBuilder bLibrary          = DefaultItem
                                                      .WithChild(APackage.WithStereotype(Stereotype.bLibrary))
                                                      .WithChild(APackage.WithStereotype(Stereotype.PRIMLibrary))
                                                      .WithChild(APackage.WithStereotype(Stereotype.ENUMLibrary))
                                                      .WithChild(APackage.WithStereotype(Stereotype.CDTLibrary))
                                                      .WithChild(APackage.WithStereotype(Stereotype.CCLibrary))
                                                      .WithChild(APackage.WithStereotype(Stereotype.BDTLibrary))
                                                      .WithChild(APackage.WithStereotype(Stereotype.BIELibrary))
                                                      .WithChild(APackage.WithStereotype(Stereotype.DOCLibrary))
                                                      .WithChild(invalidSubPackage);

            VerifyConstraintViolations(bLibrary, invalidSubPackage);
        }
Пример #10
0
        private void Validate(RepositoryItemBuilder validatedItemBuilder, string message)
        {
            RepositoryItem validatedItem = validatedItemBuilder.Build();

            IValidator validator = Validator();

            Assert.That(validator.Matches(validatedItem), "validator does not match validated item");

            var constraintViolations = new List <ConstraintViolation>(validator.Validate(validatedItem));

            foreach (ConstraintViolation constraintViolation in constraintViolations)
            {
                Console.WriteLine(constraintViolation);
            }

            var actualOffendingItemIds = new List <ItemId>(validator.Validate(validatedItem).Select(constraintViolation => constraintViolation.OffendingItemId));

            Assert.That(actualOffendingItemIds, Is.EquivalentTo(expectedOffendingItemIds), message);
            expectedOffendingItemIds.Clear();
        }
Пример #11
0
        protected void ExpectConstraintViolation(RepositoryItemBuilder offendingItemBuilder)
        {
            RepositoryItem offendingItem = offendingItemBuilder.Build();

            expectedOffendingItemIds.Add(offendingItem.Id);
        }
 public ExpectedViolation(RepositoryItemBuilder validatedItem, params RepositoryItemBuilder[] offendingItems)
 {
     ValidatedItem  = validatedItem;
     OffendingItems = offendingItems;
 }
Пример #13
0
        public void ShouldNotAllowAnInvalidParent()
        {
            RepositoryItemBuilder bLibrary = DefaultItem.WithParent(APackage.WithStereotype("SOME-OTHER-KIND-OF-PACKAGE").WithParent(APackage));

            VerifyConstraintViolations(bLibrary, bLibrary);
        }
        public void ShouldOnlyAllowABLibraryAsParent()
        {
            RepositoryItemBuilder elementLibrary = DefaultItem.WithParent(APackage.WithStereotype("other than bLibrary"));

            VerifyConstraintViolations(elementLibrary, elementLibrary);
        }
        private void AssertValidatorDoesNotMatch(RepositoryItemBuilder repositoryItemBuilder)
        {
            RepositoryItem repositoryItem = repositoryItemBuilder.Build();

            Assert.IsFalse(Validator().Matches(repositoryItem), libraryStereotype + " validator wrongly matches a " + repositoryItem.Id.Type + " with stereotype " + repositoryItem.Stereotype + ".");
        }
Пример #16
0
 protected void Validate(RepositoryItemBuilder validatedItemBuilder)
 {
     Validate(validatedItemBuilder, "");
 }
        public void ShouldOnlyAllowAPRIMLibraryAsParent()
        {
            RepositoryItemBuilder prim = DefaultItem.WithParent(APackage.WithStereotype("other than " + LibraryStereotype));

            VerifyConstraintViolations(prim, prim);
        }