public void FilterByExecutionProviderRequest_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", "B00", new Security() { Symbol = "GOOG" }, new DateTime(2015, 01, 21, 18, 20, 57)); Dictionary <string, int> executionDetails = new Dictionary <string, int>(); executionDetails.Add("B00", 20); executionDetails.Add("B01", -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, OrderExecutionProvider.Simulated, "B02", new Security() { Symbol = "GOOG" }, new DateTime(2015, 01, 21, 18, 20, 57)); Dictionary <string, int> executionDetails = new Dictionary <string, int>(); executionDetails.Add("B02", 20); executionDetails.Add("B03", -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", "B04", new Security() { Symbol = "GOOG" }, new DateTime(2015, 01, 21, 18, 20, 57)); Dictionary <string, int> executionDetails = new Dictionary <string, int>(); executionDetails.Add("B04", 20); executionDetails.Add("B05", -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.FilterByExecutionProvider("FilterTestCase"); Assert.IsNotNull(tradesReturned, "Values Retrieved"); Assert.AreEqual(localTradesList.Count - 1, tradesReturned.Count, "Values Retrieved"); Assert.IsTrue(tradesReturned[0].ExecutionDetails["B00"].Equals(localTradesList[0].ExecutionDetails["B00"]), "Matching 1st Trade 1st Execution"); Assert.IsTrue(tradesReturned[0].ExecutionDetails["B01"].Equals(localTradesList[0].ExecutionDetails["B01"]), "Matching 1st Trade 2st Execution"); Assert.IsTrue(tradesReturned[1].ExecutionDetails["B04"].Equals(localTradesList[2].ExecutionDetails["B04"]), "Matching 2nd Trade 1st Execution"); Assert.IsTrue(tradesReturned[1].ExecutionDetails["B05"].Equals(localTradesList[2].ExecutionDetails["B05"]), "Matching 2nd Trade 2st Execution"); // Delete Trades Generated for Test Case foreach (Trade trade in localTradesList) { _tradeRespository.Delete(trade); } }