public void DoesNotThrowWhenThereAreNoCycles() { var mockContainer = new Mock <IContainer>(); mockContainer.Setup(x => x.GetDependencies(typeof(A))) .Returns(new[] { typeof(B) }); mockContainer.Setup(x => x.GetDependencies(typeof(B))) .Returns(new[] { typeof(C) }); CycleDetector.CheckForCycles(typeof(A), mockContainer.Object); }
public void ThrowsExceptionWhenCycleExists() { var mockContainer = new Mock <IContainer>(); mockContainer.Setup(x => x.GetDependencies(typeof(A))) .Returns(new[] { typeof(B) }); mockContainer.Setup(x => x.GetDependencies(typeof(B))) .Returns(new[] { typeof(C) }); mockContainer.Setup(x => x.GetDependencies(typeof(C))) .Returns(new[] { typeof(A) }); CycleDetector.CheckForCycles(typeof(A), mockContainer.Object); }