예제 #1
0
        public void SingleNodeCouldBeValidated()
        {
            // Arrange
            var vertex = new AsyncLockDAGVertex();

            // Act
            var exception = Record.Exception(
                () => vertex.ValidateGraph());

            // Assert
            exception.Should().BeNull();
        }
예제 #2
0
        public void SingleEdgeGraphCouldBeValidated()
        {
            // Arrange
            var vertex1 = new AsyncLockDAGVertex();
            var vertex2 = new AsyncLockDAGVertex();

            vertex1.AddEdgesTo(vertex2);

            // Act
            var exception = Record.Exception(
                () => vertex1.ValidateGraph());

            // Assert
            exception.Should().BeNull();
        }
예제 #3
0
        public void GraphWithLoopCouldNotBeValidated()
        {
            // Arrange
            var vertex1 = new AsyncLockDAGVertex();
            var vertex2 = new AsyncLockDAGVertex();
            var vertex3 = new AsyncLockDAGVertex();
            var vertex4 = new AsyncLockDAGVertex();

            vertex1.AddEdgesTo(vertex2, vertex3);
            vertex2.AddEdgesTo(vertex4);
            vertex3.AddEdgesTo(vertex4);
            vertex4.AddEdgesTo(vertex1);

            // Act
            var exception = Record.Exception(
                () => vertex1.ValidateGraph());

            // Assert
            exception.Should().NotBeNull().And.BeOfType <InvalidOperationException>();
        }