public InMemorySimulationClient(IBuildingSecurityClient buildingSecurityClient, Scheduler scheduler) { _buildingSecurityClient = buildingSecurityClient as PseudoBuildingSecurityClient; Debug.Assert(_buildingSecurityClient != null, "_buildingSecurityClient != null"); _alarmRepository = _buildingSecurityClient.AlarmRepository; _caseRepository = _buildingSecurityClient.CaseRepository; _scheduler = scheduler; RegisterEventHanders(); }
public void UpdateCase_WithDifferentTitle_ChanesCaseTitle() { //arrange var caseRepository = new InMemoryCaseRepository(); const string caseId = "1"; const string desiredTitle = "updated title"; caseRepository.CreateCase(new CaseData{ Id = "1", Title = "Starting Title" }); var client = GetSimulationClient(caseRepository); //act client.Run("{events:[{'at':'0.0:0:0.0','name':'UpdateCase','value':{'Id':'" + caseId + "','Title':'" + desiredTitle + "'}}]}"); Thread.Sleep(200);//Run is asynchronous and as of writing this test one can not provide simulation client with a scheduler that //runs everything at once. //assert Assert.AreEqual(desiredTitle, caseRepository.RetrieveCase(caseId).Title, "UpdateCase failed to update case's title"); }
private static InMemorySimulationClient GetSimulationClient(InMemoryCaseRepository caseRepository = null) { return new InMemorySimulationClient(new PseudoBuildingSecurityClient(caseRepository??new InMemoryCaseRepository()), new Scheduler(TimeSpan.FromMilliseconds(1.0))); }
private static PseudoBuildingSecurityClient GetBuildingSecurityClient(InMemoryCaseRepository caseRepository = null) { return new PseudoBuildingSecurityClient(caseRepository??new InMemoryCaseRepository()); }