public void FilterBySecurityRequest_RetrieveResults_Successful_DeleteAddedEntries() { // Contains Trades which are created in the Test Case IList <Trade> localTradesList = new List <Trade>(); // Save New Trade { Trade trade = new Trade(TradeSide.Buy, 20, 113, "FilterTestCase", "D00", new Security() { Symbol = "TestSymbol" }, new DateTime(2015, 01, 21, 18, 20, 57)); Dictionary <string, int> executionDetails = new Dictionary <string, int>(); executionDetails.Add("D00", 20); executionDetails.Add("D01", -20); trade.ExecutionDetails = executionDetails; //add Trade to database _tradeRespository.AddUpdate(trade); // Add to list localTradesList.Add(trade); } // Save New Trade { Trade trade = new Trade(TradeSide.Sell, 20, 113, "FilterTestCase", "D02", new Security() { Symbol = "GOOG" }, new DateTime(2015, 01, 21, 18, 20, 57)); Dictionary <string, int> executionDetails = new Dictionary <string, int>(); executionDetails.Add("D02", -20); executionDetails.Add("D03", 20); trade.ExecutionDetails = executionDetails; //add Trade to database _tradeRespository.AddUpdate(trade); // Add to list localTradesList.Add(trade); } // Save New Trade { Trade trade = new Trade(TradeSide.Buy, 20, 113, "FilterTestCase", "D04", new Security() { Symbol = "TestSymbol" }, new DateTime(2015, 01, 21, 18, 20, 57)); Dictionary <string, int> executionDetails = new Dictionary <string, int>(); executionDetails.Add("D04", 20); executionDetails.Add("D05", -20); trade.ExecutionDetails = executionDetails; //add Trade to database _tradeRespository.AddUpdate(trade); // Add to list localTradesList.Add(trade); } // Wait for Transactions to complete Thread.Sleep(1000); //get the Trades filtered by Execution Provider IList <Trade> tradesReturned = _tradeRespository.FilterBySecurity(new Security() { Symbol = "TestSymbol" }); Assert.IsNotNull(tradesReturned, "Values Retrieved"); Assert.AreEqual(localTradesList.Count - 1, tradesReturned.Count, "Values Retrieved"); Assert.IsTrue(tradesReturned[0].ExecutionDetails["D00"].Equals(localTradesList[0].ExecutionDetails["D00"]), "Matching 1st Trade 1st Execution"); Assert.IsTrue(tradesReturned[0].ExecutionDetails["D01"].Equals(localTradesList[0].ExecutionDetails["D01"]), "Matching 1st Trade 2st Execution"); Assert.IsTrue(tradesReturned[1].ExecutionDetails["D04"].Equals(localTradesList[2].ExecutionDetails["D04"]), "Matching 2nd Trade 1st Execution"); Assert.IsTrue(tradesReturned[1].ExecutionDetails["D05"].Equals(localTradesList[2].ExecutionDetails["D05"]), "Matching 2nd Trade 2st Execution"); // Delete Trades Generated for Test Case foreach (Trade trade in localTradesList) { _tradeRespository.Delete(trade); } }