From 55a66919170f501d4d952b2403af4887ff2cf988 Mon Sep 17 00:00:00 2001 From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at> Date: Thu, 1 Sep 2022 15:42:29 +0200 Subject: [PATCH] added RunDataFactoryFactoryTest --- .../RunDataFactoryFactoryTest.cs | 153 ++++++++++++++++++ VectoCore/VectoCoreTest/VectoCoreTest.csproj | 1 + 2 files changed, 154 insertions(+) create mode 100644 VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs diff --git a/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs b/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs new file mode 100644 index 0000000000..2f45df2608 --- /dev/null +++ b/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs @@ -0,0 +1,153 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Moq; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData; +using TUGraz.VectoCore.InputData.Reader; +using TUGraz.VectoCore.InputData.Reader.Impl; + +namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory +{ + [TestFixture] + internal class RunDataFactoryFactoryTest + { + private IVectoRunDataFactoryFactory _runDataFactoryFactory; + + + + [OneTimeSetUp] + public void OneTimeSetup() + { + var kernel = new StandardKernel(new VectoNinjectModule()) { + + }; + _runDataFactoryFactory = kernel.Get<IVectoRunDataFactoryFactory>(); + Assert.IsTrue(_runDataFactoryFactory.GetType() == typeof(VectoRunDataFactoryFactory)); + } + + private void CreateRunDataFactory(Mock<IDeclarationInputDataProvider> inputMock, Type expectedType) + { + var result = _runDataFactoryFactory.CreateDeclarationRunDataFactory(inputMock.Object, null, + null); + Assert.IsTrue(result.GetType() == expectedType); + } + + [TestCase()] + public void ConventionalHeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .Conventional() + .Lorry(); + + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.Conventional)); + + } + [TestCase()] + public void HEV_S2_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S2) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_S2)); + } + + [TestCase()] + public void HEV_S3_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S3) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_S3)); + } + + [TestCase()] + public void HEV_S4_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S4) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_S4)); + } + + [TestCase()] + public void HEV_P1_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P1) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_P1)); + } + [TestCase()] + public void HEV_P2_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P2) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_P2)); + } + + [TestCase()] + public void HEV_P2_5_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P2_5) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_P2_5)); + } + + [TestCase()] + public void HEV_P3_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P3) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_P3)); + } + [TestCase()] + public void HEV_P4_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P4) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_P4)); + } + + } + + internal static class InputDataProviderMockExtension + { + internal static Mock<IDeclarationInputDataProvider> Conventional(this Mock<IDeclarationInputDataProvider> mock) + { + mock.Setup(provider => provider.JobInputData.JobType) + .Returns(VectoSimulationJobType.ConventionalVehicle); + mock.Setup(p => p.JobInputData.Vehicle.ArchitectureID).Returns(ArchitectureID.UNKNOWN); + + return mock; + } + + internal static Mock<IDeclarationInputDataProvider> HEV(this Mock<IDeclarationInputDataProvider> mock, ArchitectureID arch) + { + + + mock.Setup(p => p.JobInputData.Vehicle.ArchitectureID).Returns(arch); + mock.Setup(p => p.JobInputData.JobType).Returns(arch.ToString().StartsWith("P") + ? VectoSimulationJobType.ParallelHybridVehicle + : VectoSimulationJobType.SerialHybridVehicle); + return mock; + } + internal static Mock<IDeclarationInputDataProvider> Lorry(this Mock<IDeclarationInputDataProvider> mock) + { + mock.Setup(provider => provider.JobInputData.Vehicle.VehicleCategory) + .Returns(VehicleCategory.RigidTruck); + return mock; + } + + } + +} diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index 46de90a322..4b051af090 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -13,6 +13,7 @@ <DefineConstants>$(DefineConstants);MOCKUP</DefineConstants> </PropertyGroup> <ItemGroup> + <PackageReference Include="Moq" Version="4.18.2" /> <PackageReference Include="NUnit" Version="3.13.2" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" /> -- GitLab