public void WhenResolvingTheIncorrectJobsStructureItThrowsAnError()
        {
            var ex = Assert.Throws <CircularJobDependencyException>(() => _subject.Resolve("AC"));

            Assert.That(ex, Is.Not.Null, "The circular dependency has not been detected when expected!");
        }
        public void WhenPassingSequenceOfThreeJobsItResolvesTheCorrectOrder()
        {
            var result = _subject.Resolve("ABC");

            Assert.That(result == "CAB" || result == "ACB", Is.True, "The resolved order is incorrect.");
        }
        public void WhenResolvingTheAdvancedDependenciesItConsidersMultipleDependenciesAndReturnsTheCorrectOrder()
        {
            var result = _subject.Resolve("ABCDEF");

            Assert.That(result == "ADFCEB", Is.True, "The resolved order is incorrect.");
        }
        public void WhenPassingAnEmptyStringItResolvesWithEmptySequence()
        {
            var result = _subject.Resolve(string.Empty);

            Assert.That(result == string.Empty, Is.True, "The resolved sequence is not empty.");
        }
        public void WhenResolvingMultipleJobsDependenciesItReturnsTheCorrectOrderOfJobs()
        {
            var result = _subject.Resolve("ABCDEF");

            Assert.That(result == "AFCDBE" || result == "FACDBE" || result == "AFDCBE" || result == "FADCBE" || result == "ADFCBE", Is.True, "The resolved order is incorrect.");
        }