using System.Collections;
using System.Collections.Generic;
public class PredicitiveMaintainenceTest
public void given_whenAllSensorsAreGood_When_HealthCheckIsCalled_Then_ReturnZeroMaintainenceCost()
var dao = new Mock<FetchSensorData>();
dao.Setup(x => x.FetchSensorData()).Returns( MockDataFromCloud());
SensorHealthCheck sesnorHealthCheck = new SensorHealthCheck(dao.Object);
int maintainenceCost = sesnorHealthCheck.GetMaintainenceCost();
Assert.AreEqual(0, maintainenceCost);
private List<SensorData> MockDataFromCloud()
return new List<SensorData> { new SensorData("S1", 30), new SensorData("S1", 20) };
public interface FetchSensorData
public List<SensorData> FetchSensorData();
public class SensorHealthCheck
FetchSensorData _fetchSensorData;
public SensorHealthCheck(FetchSensorData fecthSensorData)
_fetchSensorData = fecthSensorData;
public int GetMaintainenceCost()
List<SensorData> sesnorData = _fetchSensorData.FetchSensorData();
foreach (var data in sesnorData)
Console.WriteLine(data.sensorID);
Console.WriteLine(data.sensorValue);
public SensorData(string sensorID, int sensorValue)
this.sensorID = sensorID;
this.sensorValue = sensorValue;
public string sensorID { get; internal set; }
public int sensorValue { get; internal set; }
public static void Main()
var x = new NUnitLite.AutoRun().Execute(new string[]{"--test:PredicitiveMaintainenceTest", "--noc"});
Console.WriteLine("----------------------------------------------");
Console.WriteLine(x==0?"All Test Passed... :¬)": string.Format("{0} tests failed... :¬(", x));
Console.WriteLine("----------------------------------------------");