private static void Insert(TestHarness harness, bool disableBatching) { using (var context = new OrdersContext(_connectionString, disableBatching)) { using (context.Database.AsRelational().Connection.BeginTransaction()) { for (var i = 0; i < 1000; i++) { context.Customers.Add(new Customer { Name = "New Customer " + i }); } harness.StartCollection(); var records = context.SaveChanges(); harness.StopCollection(); Assert.Equal(1000, records); } } }
private static void Update(TestHarness harness) { using (var context = new OrdersContext(_connectionString)) { using (context.Database.BeginTransaction()) { foreach (var customer in context.Customers) { customer.Name += " Modified"; } harness.StartCollection(); var records = context.SaveChanges(); harness.StopCollection(); Assert.Equal(1000, records); } } }
public void Add(TestHarness harness, bool autoDetectChanges) { using (var context = new OrdersContext(_connectionString)) { var customers = new Customer[1000]; for (var i = 0; i < customers.Length; i++) { customers[i] = new Customer { Name = "Customer " + i }; } context.Configuration.AutoDetectChangesEnabled = autoDetectChanges; using (harness.StartCollection()) { foreach (var customer in customers) { context.Customers.Add(customer); } } } }
public Scope(TestHarness harness) { _harness = harness; }
private static void Mixed(TestHarness harness, bool disableBatching) { using (var context = new OrdersContext(_connectionString, disableBatching)) { using (context.Database.AsRelational().Connection.BeginTransaction()) { var customers = context.Customers.ToArray(); for (var i = 0; i < 333; i++) { context.Customers.Add(new Customer { Name = "New Customer " + i }); } for (var i = 0; i < 1000; i += 3) { context.Customers.Remove(customers[i]); } for (var i = 1; i < 1000; i += 3) { customers[i].Name += " Modified"; } harness.StartCollection(); var records = context.SaveChanges(); harness.StopCollection(); Assert.Equal(1000, records); } } }
private static void Delete(TestHarness harness, bool disableBatching) { using (var context = new OrdersContext(_connectionString, disableBatching)) { using (context.Database.AsRelational().Connection.BeginTransaction()) { foreach (var customer in context.Customers) { context.Customers.Remove(customer); } harness.StartCollection(); var records = context.SaveChanges(); harness.StopCollection(); Assert.Equal(1000, records); } } }
protected RunResult Run(TestDefinition test) { //localize test settings var warmupCount = test.WarmupCount; var iterationCount = test.IterationCount; var testName = test.TestName ?? test.GetType() + "#" + test.GetHashCode(); var setup = test.Setup; var run = test.Run; var cleanup = test.Cleanup; //validate if (run == null) { throw new ArgumentNullException(string.Format("Verify that test {0} has a run action.", testName)); } //setup try { if (setup != null) { setup(); } } catch (Exception e) { return new RunResult(testName, e); } //warmup try { for (var w = 0; w < warmupCount; ++w) { run(TestHarness.NullHarness); } } catch (Exception e) { return new RunResult(testName, e); } var runStopwatch = new Stopwatch(); var iterationStopwatch = new Stopwatch(); var iterationCounters = new List<IterationCounter>(); //run try { for (var i = 0; i < iterationCount; ++i) { iterationStopwatch.Reset(); var harness = new TestHarness(iterationStopwatch, runStopwatch); run(harness); iterationCounters.Add( new IterationCounter { ElapsedMillis = iterationStopwatch.ElapsedMilliseconds, WorkingSet = GC.GetTotalMemory(false) }); } } catch (Exception e) { return new RunResult(testName, e); } var result = new RunResult(testName, runStopwatch.ElapsedMilliseconds, GC.GetTotalMemory(false), iterationCounters); //cleanup try { if (cleanup != null) { cleanup(); } } catch (Exception e) { result.ReportedException = e; } //report return result; }
public void Update(TestHarness harness, bool autoDetectChanges) { using (var context = new OrdersContext(_connectionString)) { var customers = GetAllCustomersFromDatabase(); Assert.Equal(1000, customers.Length); context.Configuration.AutoDetectChangesEnabled = autoDetectChanges; using (harness.StartCollection()) { foreach (var customer in customers) { context.Entry(customer).State = EntityState.Modified; } } } }
public void Remove(TestHarness harness, bool autoDetectChanges) { using (var context = new OrdersContext(_connectionString)) { var customers = context.Customers.ToArray(); Assert.Equal(1000, customers.Length); context.Configuration.AutoDetectChangesEnabled = autoDetectChanges; using (harness.StartCollection()) { foreach (var customer in customers) { context.Customers.Remove(customer); } } } }