Extract sum shear force logic
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperLogics.Models.BeamShears.Logics;
|
||||
using StructureHelperLogics.Models.BeamShears;
|
||||
|
||||
namespace StructureHelperTests.UnitTests.BeamShearTests
|
||||
{
|
||||
|
||||
|
||||
namespace YourNamespace.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class GetDirectShearForceLogicTests
|
||||
{
|
||||
private Mock<IShiftTraceLogger> _mockLogger;
|
||||
private Mock<ISumForceByShearLoadLogic> _mockSummaryForceLogic;
|
||||
private GetDirectShearForceLogic _logic;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_mockLogger = new Mock<IShiftTraceLogger>();
|
||||
_mockSummaryForceLogic = new Mock<ISumForceByShearLoadLogic>();
|
||||
var mockAxisAction = new Mock<IBeamShearAxisAction>();
|
||||
var mockInclinedSection = new Mock<IInclinedSection>();
|
||||
var mockShearLoad = new Mock<IBeamShearLoad>();
|
||||
|
||||
mockAxisAction.Setup(a => a.SupportShearForce).Returns(100.0);
|
||||
mockAxisAction.Setup(a => a.ShearLoads).Returns(new List<IBeamShearLoad> { mockShearLoad.Object });
|
||||
|
||||
mockInclinedSection.Setup(i => i.StartCoord).Returns(2.0);
|
||||
mockInclinedSection.Setup(i => i.EndCoord).Returns(5.0);
|
||||
|
||||
_mockSummaryForceLogic.Setup(s => s.GetSumShearForce(mockShearLoad.Object, 2.0, 5.0)).Returns(50.0);
|
||||
_logic = new GetDirectShearForceLogic(mockAxisAction.Object, mockInclinedSection.Object, _mockLogger.Object, _mockSummaryForceLogic.Object);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetShearForce_ShouldReturnCorrectShearForce()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
// Act
|
||||
double result = _logic.CalculateShearForce();
|
||||
|
||||
// Assert
|
||||
Assert.That(result, Is.EqualTo(150.0));
|
||||
_mockLogger.Verify(l => l.AddMessage(It.IsAny<string>(), It.IsAny<TraceLogStatuses>()), Times.AtLeastOnce);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperLogics.Models.BeamShears;
|
||||
namespace StructureHelperTests.UnitTests.BeamShearTests
|
||||
{
|
||||
[TestFixture]
|
||||
public class GetShearForceLogicTests
|
||||
{
|
||||
private Mock<IShiftTraceLogger> _mockLogger;
|
||||
private Mock<IGetLoadFactor> _mockGetFactorLogic;
|
||||
private Mock<IGetDirectShearForceLogic> _mockGetDirectShearForceLogic;
|
||||
private Mock<IShearForceLogicInputData> _mockInputData;
|
||||
private ShearForceLogic _logic;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_mockLogger = new Mock<IShiftTraceLogger>();
|
||||
_mockGetFactorLogic = new Mock<IGetLoadFactor>();
|
||||
_mockGetDirectShearForceLogic = new Mock<IGetDirectShearForceLogic>();
|
||||
_mockInputData = new Mock<IShearForceLogicInputData>();
|
||||
|
||||
_logic = new ShearForceLogic(
|
||||
_mockInputData.Object,
|
||||
_mockLogger.Object,
|
||||
_mockGetFactorLogic.Object,
|
||||
_mockGetDirectShearForceLogic.Object
|
||||
);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetShearForce_ShouldReturnCorrectShearForce()
|
||||
{
|
||||
// Arrange
|
||||
_mockGetFactorLogic.Setup(f => f.GetFactor()).Returns(1.5);
|
||||
_mockGetDirectShearForceLogic.Setup(d => d.CalculateShearForce()).Returns(100.0);
|
||||
|
||||
// Act
|
||||
double result = _logic.GetShearForce();
|
||||
|
||||
// Assert
|
||||
Assert.That(result, Is.EqualTo(150.0));
|
||||
_mockLogger.Verify(l => l.AddMessage(It.IsAny<string>(), It.IsAny<TraceLogStatuses>()), Times.AtLeastOnce);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperLogics.Models.BeamShears;
|
||||
|
||||
namespace StructureHelperTests.UnitTests.BeamShearTests
|
||||
{
|
||||
[TestFixture]
|
||||
public class SumConcentratedForceLogicTests
|
||||
{
|
||||
private Mock<IShiftTraceLogger> _mockLogger;
|
||||
private Mock<ICoordinateByLevelLogic> _mockCoordinateByLevelLogic;
|
||||
private SumConcentratedForceLogic _logic;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_mockLogger = new Mock<IShiftTraceLogger>();
|
||||
_mockCoordinateByLevelLogic = new Mock<ICoordinateByLevelLogic>();
|
||||
_logic = new SumConcentratedForceLogic(_mockCoordinateByLevelLogic.Object, _mockLogger.Object);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetSumShearForce_ShouldReturnCorrectForce_ForValidConcentratedForce()
|
||||
{
|
||||
// Arrange
|
||||
var mockConcentratedForce = new Mock<IConcentratedForce>();
|
||||
mockConcentratedForce.Setup(f => f.ForceCoordinate).Returns(3.0);
|
||||
mockConcentratedForce.Setup(f => f.ForceValue).Returns(100.0);
|
||||
mockConcentratedForce.Setup(f => f.LoadRatio).Returns(0.8);
|
||||
mockConcentratedForce.Setup(f => f.RelativeLoadLevel).Returns(0.5);
|
||||
|
||||
_mockCoordinateByLevelLogic.Setup(c => c.GetCoordinate(2.0, 5.0, 0.5)).Returns(3.5);
|
||||
|
||||
// Act
|
||||
double result = _logic.GetSumShearForce(mockConcentratedForce.Object, 2.0, 5.0);
|
||||
|
||||
// Assert
|
||||
Assert.That(result, Is.EqualTo(80.0));
|
||||
_mockLogger.Verify(l => l.AddMessage(It.IsAny<string>(), It.IsAny<TraceLogStatuses>()), Times.AtLeastOnce);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetSumShearForce_ShouldReturnZero_WhenForceCoordinateExceedsEndCoord()
|
||||
{
|
||||
// Arrange
|
||||
var mockConcentratedForce = new Mock<IConcentratedForce>();
|
||||
mockConcentratedForce.Setup(f => f.ForceCoordinate).Returns(6.0);
|
||||
|
||||
// Act
|
||||
double result = _logic.GetSumShearForce(mockConcentratedForce.Object, 2.0, 5.0);
|
||||
|
||||
// Assert
|
||||
Assert.That(result, Is.EqualTo(0.0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetSumShearForce_ShouldThrowException_ForInvalidShearLoad()
|
||||
{
|
||||
// Arrange
|
||||
var mockInvalidShearLoad = new Mock<IBeamShearLoad>();
|
||||
|
||||
// Act & Assert
|
||||
Assert.Throws<StructureHelperException>(() => _logic.GetSumShearForce(mockInvalidShearLoad.Object, 2.0, 5.0));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperLogics.Models.BeamShears;
|
||||
|
||||
namespace StructureHelperTests.UnitTests.BeamShearTests
|
||||
{
|
||||
[TestFixture]
|
||||
public class SumDistributedLoadLogicTests
|
||||
{
|
||||
private Mock<IShiftTraceLogger> _mockLogger;
|
||||
private Mock<ICoordinateByLevelLogic> _mockCoordinateByLevelLogic;
|
||||
private SumDistributedLoadLogic _logic;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_mockLogger = new Mock<IShiftTraceLogger>();
|
||||
_mockCoordinateByLevelLogic = new Mock<ICoordinateByLevelLogic>();
|
||||
_logic = new SumDistributedLoadLogic(_mockCoordinateByLevelLogic.Object, _mockLogger.Object);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetSumShearForce_ShouldReturnCorrectForce_ForValidDistributedLoad()
|
||||
{
|
||||
// Arrange
|
||||
var mockDistributedLoad = new Mock<IDistributedLoad>();
|
||||
mockDistributedLoad.Setup(d => d.StartCoordinate).Returns(1.0);
|
||||
mockDistributedLoad.Setup(d => d.EndCoordinate).Returns(4.0);
|
||||
mockDistributedLoad.Setup(d => d.LoadValue).Returns(50.0);
|
||||
mockDistributedLoad.Setup(d => d.LoadRatio).Returns(0.9);
|
||||
mockDistributedLoad.Setup(d => d.RelativeLoadLevel).Returns(0.5);
|
||||
|
||||
_mockCoordinateByLevelLogic.Setup(c => c.GetCoordinate(2.0, 5.0, 0.5)).Returns(4.5);
|
||||
|
||||
// Act
|
||||
double result = _logic.GetSumShearForce(mockDistributedLoad.Object, 2.0, 5.0);
|
||||
|
||||
// Assert
|
||||
Assert.That(result, Is.EqualTo(135.0));
|
||||
_mockLogger.Verify(l => l.AddMessage(It.IsAny<string>(), It.IsAny<TraceLogStatuses>()), Times.AtLeastOnce);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetSumShearForce_ShouldReturnZero_WhenStartCoordExceedsEndCoord()
|
||||
{
|
||||
// Arrange
|
||||
var mockDistributedLoad = new Mock<IDistributedLoad>();
|
||||
mockDistributedLoad.Setup(d => d.StartCoordinate).Returns(6.0);
|
||||
|
||||
// Act
|
||||
double result = _logic.GetSumShearForce(mockDistributedLoad.Object, 2.0, 5.0);
|
||||
|
||||
// Assert
|
||||
Assert.That(result, Is.EqualTo(0.0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetSumShearForce_ShouldThrowException_ForInvalidShearLoad()
|
||||
{
|
||||
// Arrange
|
||||
var mockInvalidShearLoad = new Mock<IBeamShearLoad>();
|
||||
|
||||
// Act & Assert
|
||||
Assert.Throws<StructureHelperException>(() => _logic.GetSumShearForce(mockInvalidShearLoad.Object, 2.0, 5.0));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user