public void When_persisting_a_complex_class_an_event_is_fired_for_each_class_instance()
        {
            var handler  = new PersistCustomerHandler();
            var order    = new Order();
            var customer = new Customer {
                FirstName = "john", LastName = "Wayne"
            };

            order.Customer = customer;
            order.LineItems.Add(new LineItem {
                Price = 100, SKU = "XX1"
            });
            order.LineItems.Add(new LineItem {
                Price = 200, SKU = "XX2"
            });
            order.LineItems.Add(new LineItem {
                Price = 300, SKU = "XX3"
            });
            order.LineItems.Add(new LineItem {
                Price = 400, SKU = "XX4"
            });

            var identityMap = new Script().Database().Persist(order, handler);

            // There are 6 class instances that needed to be stored
            identityMap.Count.Should().Be(6);

            handler.GetTraceLog().Should().Be(@"OrderId: 1234
OrderId 1234 for Customer: john Wayne
Line item: 1 with SKU XX1
Line item: 2 with SKU XX2
Line item: 3 with SKU XX3
Line item: 4 with SKU XX4");
        }
        public void When_persisting_a_simple_class_a_single_event_is_fired()
        {
            var handler  = new PersistCustomerHandler();
            var customer = new Customer {
                FirstName = "john", LastName = "Wayne"
            };

            var identityMap = new Script().Database().Persist(customer, handler);

            handler.GetTraceLog().Should().Be("OrderId none for Customer: john Wayne");
        }