public void PostMaterial_Integration_CallWebAPI_Added_NotFail_Test() { int expected = 0; int sessionId = 0; int organizerId = 0; var manualResetEvent = new ManualResetEvent(false); var exceptionResult = default(Exception); using (var context = new MyEventsContext()) { sessionId = context.Materials.First().SessionId; expected = context.Materials.Count(q => q.SessionId == sessionId) + 1; organizerId = context.Sessions.Include("EventDefinition") .FirstOrDefault(q => q.SessionId == sessionId).EventDefinition.OrganizerId; } string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString(); // Create object to add Client.Material material = new Client.Material(); material.SessionId = sessionId; material.Name = Guid.NewGuid().ToString(); material.ContentType = "image/jpeg"; System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); material.Content = encoding.GetBytes("content"); var service = new Client.MyEventsClient(urlPrefix); service.SetAccessToken(MyEventsToken.CreateToken(organizerId)); IAsyncResult ar = service.MaterialService.AddMaterialAsync(material, (int materialId) => { // Asserts using (var context = new MyEventsContext()) { int actual = context.Materials.Count(q => q.SessionId == sessionId); TestHelper.ValidateResult(expected, actual, manualResetEvent, ref exceptionResult); } }); TestHelper.WaitAll(manualResetEvent, ref exceptionResult); }