Initial commit
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
using RobotNet.VDA5050.Order;
|
||||
using Xunit;
|
||||
|
||||
namespace RobotNet10.RobotApp.Tests.Example;
|
||||
|
||||
/// <summary>
|
||||
/// Example test class showing how tests should be structured.
|
||||
/// Actual tests require refactoring RobotOrderController dependencies first.
|
||||
/// See README.md for details.
|
||||
/// </summary>
|
||||
public class OrderValidationTests_Example
|
||||
{
|
||||
[Fact]
|
||||
public void OrderMsg_WithValidData_ShouldHaveCorrectProperties()
|
||||
{
|
||||
// Arrange
|
||||
var order = new OrderMsg
|
||||
{
|
||||
OrderId = "TEST001",
|
||||
OrderUpdateId = 0,
|
||||
HeaderId = 1,
|
||||
Timestamp = DateTime.UtcNow.ToString("o"),
|
||||
Version = "2.0.0",
|
||||
Manufacturer = "Test",
|
||||
SerialNumber = "SN001",
|
||||
Nodes = [],
|
||||
Edges = []
|
||||
};
|
||||
|
||||
// Act & Assert
|
||||
Assert.Equal("TEST001", order.OrderId);
|
||||
Assert.Equal(0, order.OrderUpdateId);
|
||||
Assert.NotNull(order.Nodes);
|
||||
Assert.NotNull(order.Edges);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Node_WithValidPosition_ShouldHaveCorrectCoordinates()
|
||||
{
|
||||
// Arrange
|
||||
var node = new Node
|
||||
{
|
||||
NodeId = "NODE001",
|
||||
SequenceId = 0,
|
||||
Released = true,
|
||||
NodePosition = new NodePosition
|
||||
{
|
||||
X = 10.5,
|
||||
Y = 20.3,
|
||||
Theta = 1.57,
|
||||
MapId = "MAP001"
|
||||
}
|
||||
};
|
||||
|
||||
// Act & Assert
|
||||
Assert.Equal("NODE001", node.NodeId);
|
||||
Assert.Equal(0, node.SequenceId);
|
||||
Assert.True(node.Released);
|
||||
Assert.Equal(10.5, node.NodePosition.X);
|
||||
Assert.Equal(20.3, node.NodePosition.Y);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(0, true)] // First node, sequence 0
|
||||
[InlineData(2, true)] // Second node, sequence 2
|
||||
[InlineData(4, true)] // Third node, sequence 4
|
||||
[InlineData(1, false)] // Invalid odd sequence for node
|
||||
[InlineData(3, false)] // Invalid odd sequence for node
|
||||
public void Node_SequenceId_ShouldBeEven(int sequenceId, bool isValid)
|
||||
{
|
||||
// This demonstrates how validation logic should be tested
|
||||
// Nodes should have even sequence IDs: 0, 2, 4, 6, ...
|
||||
|
||||
// Act
|
||||
bool isEven = sequenceId % 2 == 0;
|
||||
|
||||
// Assert
|
||||
Assert.Equal(isValid, isEven);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(1, true)] // First edge, sequence 1
|
||||
[InlineData(3, true)] // Second edge, sequence 3
|
||||
[InlineData(5, true)] // Third edge, sequence 5
|
||||
[InlineData(0, false)] // Invalid even sequence for edge
|
||||
[InlineData(2, false)] // Invalid even sequence for edge
|
||||
public void Edge_SequenceId_ShouldBeOdd(int sequenceId, bool isValid)
|
||||
{
|
||||
// This demonstrates how validation logic should be tested
|
||||
// Edges should have odd sequence IDs: 1, 3, 5, 7, ...
|
||||
|
||||
// Act
|
||||
bool isOdd = sequenceId % 2 == 1;
|
||||
|
||||
// Assert
|
||||
Assert.Equal(isValid, isOdd);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Edge_ShouldConnectTwoNodes()
|
||||
{
|
||||
// Arrange
|
||||
var node1 = new Node { NodeId = "NODE001", SequenceId = 0 };
|
||||
var node2 = new Node { NodeId = "NODE002", SequenceId = 2 };
|
||||
|
||||
var edge = new Edge
|
||||
{
|
||||
EdgeId = "EDGE001",
|
||||
SequenceId = 1,
|
||||
StartNodeId = node1.NodeId,
|
||||
EndNodeId = node2.NodeId
|
||||
};
|
||||
|
||||
// Act & Assert
|
||||
Assert.Equal(node1.NodeId, edge.StartNodeId);
|
||||
Assert.Equal(node2.NodeId, edge.EndNodeId);
|
||||
Assert.Equal(1, edge.SequenceId); // Between node 0 and node 2
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user