Tests of crack calculator were added
This commit is contained in:
@@ -62,7 +62,7 @@ namespace StructureHelperTests.UnitTests.Calcuators
|
||||
{
|
||||
// Arrange
|
||||
_mockInputData.Setup(x => x.NdmCollection).Returns(new List<INdm>());
|
||||
_mockInputData.Setup(x => x.Tuple).Returns((IForceTuple)null);
|
||||
_mockInputData.Setup(x => x.ForceTuple).Returns((IForceTuple)null);
|
||||
|
||||
// Act
|
||||
var result = _checkLogic.Check();
|
||||
@@ -78,7 +78,7 @@ namespace StructureHelperTests.UnitTests.Calcuators
|
||||
{
|
||||
// Arrange
|
||||
_mockInputData.Setup(x => x.NdmCollection).Returns(new List<INdm>());
|
||||
_mockInputData.Setup(x => x.Tuple).Returns(new ForceTuple());
|
||||
_mockInputData.Setup(x => x.ForceTuple).Returns(new ForceTuple());
|
||||
_mockInputData.Setup(x => x.Accuracy).Returns((IAccuracy)null);
|
||||
|
||||
// Act
|
||||
@@ -99,7 +99,7 @@ namespace StructureHelperTests.UnitTests.Calcuators
|
||||
mockAccuracy.Setup(x => x.MaxIterationCount).Returns(0);
|
||||
|
||||
_mockInputData.Setup(x => x.NdmCollection).Returns(new List<INdm>());
|
||||
_mockInputData.Setup(x => x.Tuple).Returns(new ForceTuple());
|
||||
_mockInputData.Setup(x => x.ForceTuple).Returns(new ForceTuple());
|
||||
_mockInputData.Setup(x => x.Accuracy).Returns(mockAccuracy.Object);
|
||||
|
||||
// Act
|
||||
@@ -121,7 +121,7 @@ namespace StructureHelperTests.UnitTests.Calcuators
|
||||
mockAccuracy.Setup(x => x.MaxIterationCount).Returns(10);
|
||||
|
||||
_mockInputData.Setup(x => x.NdmCollection).Returns(new List<INdm> { new Mock<INdm>().Object });
|
||||
_mockInputData.Setup(x => x.Tuple).Returns(new ForceTuple());
|
||||
_mockInputData.Setup(x => x.ForceTuple).Returns(new ForceTuple());
|
||||
_mockInputData.Setup(x => x.Accuracy).Returns(mockAccuracy.Object);
|
||||
|
||||
// Act
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
using NUnit.Framework;
|
||||
using Moq;
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperLogics.NdmCalculations.Cracking;
|
||||
|
||||
namespace StructureHelperTests.UnitTests.Ndms.Cracks
|
||||
{
|
||||
|
||||
|
||||
[TestFixture]
|
||||
public class CrackWidthCalculationLogicTests
|
||||
{
|
||||
private Mock<IRebarStressCalculator> _calculator;
|
||||
private Mock<ICrackWidthLogic> _mockCrackWidthLogic;
|
||||
private Mock<IShiftTraceLogger> _mockTraceLogger;
|
||||
private CrackWidthCalculationLogic _logic;
|
||||
private IRebarCrackCalculatorInputData _inputData;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_calculator = new Mock<IRebarStressCalculator>();
|
||||
_mockCrackWidthLogic = new Mock<ICrackWidthLogic>();
|
||||
_mockTraceLogger = new Mock<IShiftTraceLogger>();
|
||||
_inputData = new RebarCrackCalculatorInputData
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
_inputData.UserCrackInputData = new UserCrackInputData();
|
||||
|
||||
_logic = new CrackWidthCalculationLogic(_calculator.Object, _mockCrackWidthLogic.Object, _mockTraceLogger.Object)
|
||||
{
|
||||
InputData = _inputData
|
||||
};
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Run_ShouldPrepareNewResultAndProcessCalculations()
|
||||
{
|
||||
// Arrange
|
||||
_mockCrackWidthLogic.Setup(m => m.GetCrackWidth())
|
||||
.Returns(0.5); // Mock the GetCrackWidth method
|
||||
|
||||
// Act
|
||||
_logic.Run();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(_logic.Result);
|
||||
Assert.IsTrue(_logic.Result.IsValid);
|
||||
_mockTraceLogger.Verify(x => x.AddMessage(It.IsAny<string>()), Times.AtLeastOnce);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ProcessLongTermCalculation_ShouldReturnExpectedResult()
|
||||
{
|
||||
// Arrange
|
||||
_mockCrackWidthLogic.SetupSequence(m => m.GetCrackWidth())
|
||||
.Returns(0.5) // longTermLoadLongTermConcreteCrackWidth
|
||||
.Returns(0.2); // longTermLoadShortConcreteWidth
|
||||
|
||||
// Act
|
||||
var result = _logic.ProcessLongTermCalculations();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result);
|
||||
Assert.AreEqual(0.5, result.CrackWidth);
|
||||
_mockTraceLogger.Verify(x => x.AddMessage(It.IsAny<string>()), Times.AtLeastOnce);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ProcessShortTermCalculations_ShouldReturnExpectedResult()
|
||||
{
|
||||
// Arrange
|
||||
_mockCrackWidthLogic.SetupSequence(m => m.GetCrackWidth())
|
||||
.Returns(0.2) // longTermLoadShortConcreteWidth
|
||||
.Returns(0.3); // fullLoadShortConcreteCrackWidth
|
||||
|
||||
// Act
|
||||
var result = _logic.ProcessShortTermCalculations();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result);
|
||||
Assert.AreEqual(0.0, result.CrackWidth); // Assuming acrcShort would be 0 in this scenario
|
||||
_mockTraceLogger.Verify(x => x.AddMessage(It.IsAny<string>()), Times.AtLeastOnce);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetRebarStressResult_ShouldReturnValidResult()
|
||||
{
|
||||
// Arrange
|
||||
var mockRebarStressCalculator = new Mock<IRebarStressCalculator>();
|
||||
var expectedResult = new RebarStressResult { IsValid = true };
|
||||
mockRebarStressCalculator.Setup(c => c.Run());
|
||||
mockRebarStressCalculator.Setup(c => c.Result).Returns(expectedResult);
|
||||
|
||||
// Act
|
||||
var result = _logic.GetRebarStressResult(_inputData.ShortRebarData);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result);
|
||||
Assert.IsTrue(result.IsValid);
|
||||
_mockTraceLogger.Verify(x => x.AddMessage(It.IsAny<string>(), TraceLogStatuses.Error), Times.Never);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,7 +23,7 @@ namespace StructureHelperTests.UnitTests.Ndms.Cracks
|
||||
PsiSFactor = 1d,
|
||||
RebarStrain = rebarStrain,
|
||||
ConcreteStrain = concreteStrain,
|
||||
Length = length
|
||||
LengthBetweenCracks = length
|
||||
};
|
||||
var logic = new CrackWidthLogicSP63() { InputData = inputData };
|
||||
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
using NUnit.Framework;
|
||||
using Moq;
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperLogics.NdmCalculations.Cracking;
|
||||
using StructureHelperLogics.NdmCalculations.Primitives;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
|
||||
namespace StructureHelperTests.UnitTests.Ndms.Cracks.InputDataTests
|
||||
{
|
||||
|
||||
[TestFixture]
|
||||
public class CrackWidthCalculationLogicTests
|
||||
{
|
||||
private Mock<IRebarStressCalculator> _calculator;
|
||||
private Mock<ICrackWidthLogic> mockCrackWidthLogic;
|
||||
private Mock<IShiftTraceLogger> mockTraceLogger;
|
||||
private Mock<IRebarCrackCalculatorInputData> mockInputData;
|
||||
private Mock<IUserCrackInputData> mockUserCrackInputData;
|
||||
private Mock<IRebarPrimitive> mockRebarPrimitive;
|
||||
private Mock<IRebarStressCalculator> mockRebarStressCalculator;
|
||||
private CrackWidthCalculationLogic crackWidthCalculationLogic;
|
||||
private Mock<IRebarCrackInputData> mockRebarCrackInputData;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_calculator = new Mock<IRebarStressCalculator>();
|
||||
mockCrackWidthLogic = new Mock<ICrackWidthLogic>();
|
||||
mockTraceLogger = new Mock<IShiftTraceLogger>();
|
||||
mockInputData = new Mock<IRebarCrackCalculatorInputData>();
|
||||
mockUserCrackInputData = new Mock<IUserCrackInputData>();
|
||||
mockRebarPrimitive = new Mock<IRebarPrimitive>();
|
||||
mockRebarStressCalculator = new Mock<IRebarStressCalculator>();
|
||||
mockRebarCrackInputData = new Mock<IRebarCrackInputData>();
|
||||
|
||||
mockInputData.Setup(x => x.UserCrackInputData).Returns(mockUserCrackInputData.Object);
|
||||
mockInputData.Setup(x => x.LongRebarData).Returns(mockRebarCrackInputData.Object);
|
||||
mockInputData.Setup(x => x.ShortRebarData).Returns(mockRebarCrackInputData.Object);
|
||||
mockInputData.Setup(x => x.RebarPrimitive).Returns(mockRebarPrimitive.Object);
|
||||
|
||||
mockRebarCrackInputData.Setup(x => x.ForceTuple).Returns(new ForceTuple());
|
||||
|
||||
crackWidthCalculationLogic = new CrackWidthCalculationLogic(_calculator.Object, mockCrackWidthLogic.Object, mockTraceLogger.Object)
|
||||
{
|
||||
InputData = mockInputData.Object
|
||||
};
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Run_ShouldPrepareNewResultAndProcessCalculations()
|
||||
{
|
||||
// Arrange
|
||||
mockCrackWidthLogic.Setup(x => x.GetCrackWidth()).Returns(0.5);
|
||||
|
||||
// Act
|
||||
crackWidthCalculationLogic.Run();
|
||||
|
||||
// Assert
|
||||
mockCrackWidthLogic.Verify(x => x.GetCrackWidth(), Times.AtLeastOnce);
|
||||
Assert.IsNotNull(crackWidthCalculationLogic.Result);
|
||||
Assert.IsTrue(crackWidthCalculationLogic.Result.IsValid);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ProcessShortTermCalculations_ShouldCalculateCorrectShortTermCrackWidth()
|
||||
{
|
||||
// Arrange
|
||||
mockUserCrackInputData.Setup(x => x.UltimateShortCrackWidth).Returns(1.0);
|
||||
mockCrackWidthLogic.SetupSequence(x => x.GetCrackWidth())
|
||||
.Returns(0.6) // longTermLoadShortConcreteWidth
|
||||
.Returns(0.8); // fullLoadShortConcreteCrackWidth
|
||||
|
||||
crackWidthCalculationLogic.InputData = mockInputData.Object;
|
||||
|
||||
// Act
|
||||
var shortTermResult = crackWidthCalculationLogic.ProcessShortTermCalculations();
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1.2, shortTermResult.CrackWidth);
|
||||
Assert.AreEqual(1.0, shortTermResult.UltimateCrackWidth);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ProcessLongTermCalculations_ShouldCalculateCorrectLongTermCrackWidth()
|
||||
{
|
||||
// Arrange
|
||||
mockUserCrackInputData.Setup(x => x.UltimateLongCrackWidth).Returns(1.2);
|
||||
mockCrackWidthLogic.Setup(x => x.GetCrackWidth()).Returns(0.9);
|
||||
|
||||
// Act
|
||||
var longTermResult = crackWidthCalculationLogic.ProcessLongTermCalculations();
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(0.9, longTermResult.CrackWidth);
|
||||
Assert.AreEqual(1.2, longTermResult.UltimateCrackWidth);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -10,12 +10,12 @@ namespace StructureHelperTests.UnitTests.Ndms.Cracks.InputDataTests;
|
||||
[TestFixture]
|
||||
public class CheckTupleCalculatorInputDataTests
|
||||
{
|
||||
private CheckTupleCalculatorInputData _checkTupleCalculatorInputData;
|
||||
private CheckTupleCalculatorInputDataLogic _checkTupleCalculatorInputData;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_checkTupleCalculatorInputData = new CheckTupleCalculatorInputData();
|
||||
_checkTupleCalculatorInputData = new CheckTupleCalculatorInputDataLogic();
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
||||
Reference in New Issue
Block a user