From 1283c424669f19ca434ebac3914f29e37ebf9551 Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Wed, 19 Aug 2015 15:59:07 +0200
Subject: [PATCH] refactored AddComponent Functions to an own Port Helper Class

---
 .../SimulationRuns/MinimalPowertrain.cs       | 78 +++++--------------
 VectoCoreTest/Utils/Port.cs                   | 44 +++++++++++
 2 files changed, 63 insertions(+), 59 deletions(-)
 create mode 100644 VectoCoreTest/Utils/Port.cs

diff --git a/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
index d84384e365..f966466bc1 100644
--- a/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
+++ b/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
@@ -8,7 +8,6 @@ using TUGraz.VectoCore.Models.Connector.Ports.Impl;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.Impl;
-using TUGraz.VectoCore.Models.SimulationComponent;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
 using TUGraz.VectoCore.Models.SimulationComponent.Impl;
@@ -50,13 +49,13 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var vehicleContainer = new VehicleContainer(modalWriter, sumWriter);
 
 			var driver = new Driver(vehicleContainer, driverData);
-			dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData));
-			tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
-			tmp = AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
+			dynamic tmp = Port.AddComponent(driver, new Vehicle(vehicleContainer, vehicleData));
+			tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
+			tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
 
-			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData));
+			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData));
 			var engine = new CombustionEngine(vehicleContainer, engineData);
-			AddComponent(tmp, engine);
+			Port.AddComponent(tmp, engine);
 
 			var gbx = new MockGearbox(vehicleContainer);
 
@@ -100,13 +99,13 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 
 			var cycle = new DistanceBasedDrivingCycle(vehicleContainer, cycleData);
 
-			dynamic tmp = AddComponent(cycle, new Driver(vehicleContainer, driverData));
-			tmp = AddComponent(tmp, new Vehicle(vehicleContainer, vehicleData));
-			tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
-			tmp = AddComponent(tmp, new Breaks(vehicleContainer));
-			tmp = AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
-			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData));
-			AddComponent(tmp, new CombustionEngine(vehicleContainer, engineData));
+			dynamic tmp = Port.AddComponent(cycle, new Driver(vehicleContainer, driverData));
+			tmp = Port.AddComponent(tmp, new Vehicle(vehicleContainer, vehicleData));
+			tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
+			tmp = Port.AddComponent(tmp, new Breaks(vehicleContainer));
+			tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
+			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData));
+			Port.AddComponent(tmp, new CombustionEngine(vehicleContainer, engineData));
 
 			var gbx = new MockGearbox(vehicleContainer);
 
@@ -181,13 +180,13 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 
 			var cycle = new DistanceBasedDrivingCycle(vehicleContainer, cycleData);
 
-			dynamic tmp = AddComponent(cycle, new Driver(vehicleContainer, driverData));
-			tmp = AddComponent(tmp, new Vehicle(vehicleContainer, vehicleData));
-			tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
-			tmp = AddComponent(tmp, new Breaks(vehicleContainer));
-			tmp = AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
-			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData));
-			AddComponent(tmp, new CombustionEngine(vehicleContainer, engineData));
+			dynamic tmp = Port.AddComponent(cycle, new Driver(vehicleContainer, driverData));
+			tmp = Port.AddComponent(tmp, new Vehicle(vehicleContainer, vehicleData));
+			tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
+			tmp = Port.AddComponent(tmp, new Breaks(vehicleContainer));
+			tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
+			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData));
+			Port.AddComponent(tmp, new CombustionEngine(vehicleContainer, engineData));
 
 			var gbx = new MockGearbox(vehicleContainer);
 
@@ -291,44 +290,5 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 				}
 			};
 		}
-
-
-		// ========================
-
-		protected virtual IDriver AddComponent(IDrivingCycle prev, IDriver next)
-		{
-			prev.InPort().Connect(next.OutPort());
-			return next;
-		}
-
-		protected virtual IVehicle AddComponent(IDriver prev, IVehicle next)
-		{
-			prev.InPort().Connect(next.OutPort());
-			return next;
-		}
-
-		protected virtual IWheels AddComponent(IFvInProvider prev, IWheels next)
-		{
-			prev.InPort().Connect(next.OutPort());
-			return next;
-		}
-
-
-		protected virtual ITnOutProvider AddComponent(IWheels prev, ITnOutProvider next)
-		{
-			prev.InPort().Connect(next.OutPort());
-			return next;
-		}
-
-		protected virtual IPowerTrainComponent AddComponent(IPowerTrainComponent prev, IPowerTrainComponent next)
-		{
-			prev.InPort().Connect(next.OutPort());
-			return next;
-		}
-
-		protected virtual void AddComponent(IPowerTrainComponent prev, ITnOutProvider next)
-		{
-			prev.InPort().Connect(next.OutPort());
-		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCoreTest/Utils/Port.cs b/VectoCoreTest/Utils/Port.cs
new file mode 100644
index 0000000000..1c1b77e620
--- /dev/null
+++ b/VectoCoreTest/Utils/Port.cs
@@ -0,0 +1,44 @@
+using TUGraz.VectoCore.Models.Connector.Ports;
+using TUGraz.VectoCore.Models.SimulationComponent;
+
+namespace TUGraz.VectoCore.Tests.Utils
+{
+	public static class Port
+	{
+		public static IDriver AddComponent(IDrivingCycle prev, IDriver next)
+		{
+			prev.InPort().Connect(next.OutPort());
+			return next;
+		}
+
+		public static IVehicle AddComponent(IDriver prev, IVehicle next)
+		{
+			prev.InPort().Connect(next.OutPort());
+			return next;
+		}
+
+		public static IWheels AddComponent(IFvInProvider prev, IWheels next)
+		{
+			prev.InPort().Connect(next.OutPort());
+			return next;
+		}
+
+
+		public static ITnOutProvider AddComponent(IWheels prev, ITnOutProvider next)
+		{
+			prev.InPort().Connect(next.OutPort());
+			return next;
+		}
+
+		public static IPowerTrainComponent AddComponent(IPowerTrainComponent prev, IPowerTrainComponent next)
+		{
+			prev.InPort().Connect(next.OutPort());
+			return next;
+		}
+
+		public static void AddComponent(IPowerTrainComponent prev, ITnOutProvider next)
+		{
+			prev.InPort().Connect(next.OutPort());
+		}
+	}
+}
\ No newline at end of file
-- 
GitLab