public void Handle_WhenNextStepIsDefined_ShouldCallNextStep()
        {
            //arrange
            var ignoreStates = new[]
            {
                "10",
                "20",
            };

            var tabItems = ignoreStates.Select(state =>
            {
                Item item = ItemHelper.CreateItem(string.Empty, string.Empty);
                item.setProperty(StatePropertyKey, state);
                return(item);
            });

            //arrange
            var relationshipItems = new Dictionary <string, IEnumerable <Item> >()
            {
                { TestRelationshipName, tabItems },
            };

            var validationContext = new ValidationContext(relationshipItems)
            {
                CurrentGECO = ItemHelper.CreateItem(string.Empty, string.Empty),
                RootItem    = ItemHelper.CreateItem(string.Empty, string.Empty),
            };

            Item anotherGECO = ItemHelper.CreateItem(string.Empty, string.Empty);
            IRelationshipNameProvider relationshipNameProvider = Substitute.For <IRelationshipNameProvider>();

            relationshipNameProvider.TabName.Returns(TestRelationshipName);
            IGECOProvider gecoProvider = Substitute.For <IGECOProvider>();

            gecoProvider.GetRelatedGECOs(anotherGECO);
            IStep nextStep = Substitute.For <IStep>();

            string[] availableClassifications = { "Release & Change/CAD Document" };
            var      testClass = new TestClass(nameof(TestClass), gecoProvider, relationshipNameProvider, availableClassifications, ignoreStates);

            testClass.SetNext(nextStep);

            //act
            testClass.Handle(validationContext);

            //assert
            nextStep.Received(1).Handle(Arg.Any <ValidationContext>());
        }