public void Typed_Entity_Saves_With_Null_Attribute_Values() { var entity = GetMockedEntity(); foreach (var a in entity.Attributes) { a.Values.Clear(); a.DynamicValue = null; } using (var writer = ProviderSetup.UnitFactory.Create()) { writer.EntityRepository.AddOrUpdate(entity); writer.Complete(); } PostWriteCallback.Invoke(); using (var reader = ReadonlyProviderSetup.ReadonlyUnitFactory.CreateReadonly()) { var rev = reader.EntityRepository.Get <TypedEntity>(entity.Id); Assert.AreEqual(entity.Attributes.Count, rev.Attributes.Count); foreach (var a in rev.Attributes) { Assert.AreEqual(null, a.DynamicValue); } } }
public void Entity_Exists() { var entity = GetMockedEntity(); using (var uow = ProviderSetup.UnitFactory.Create()) { uow.EntityRepository.AddOrUpdate(entity); uow.Complete(); } PostWriteCallback.Invoke(); using (var reader = ReadonlyProviderSetup.ReadonlyUnitFactory.CreateReadonly()) { Assert.IsTrue(reader.EntityRepository.Exists <TypedEntity>(entity.Id)); } }
public void Add_Or_Update_Entity() { var entity = GetMockedEntity(); using (var uow = ProviderSetup.UnitFactory.Create()) { uow.EntityRepository.AddOrUpdate(entity); uow.Complete(); } PostWriteCallback.Invoke(); using (var reader = ReadonlyProviderSetup.ReadonlyUnitFactory.CreateReadonly()) { } Assert.IsFalse(entity.Id.IsNullValueOrEmpty()); }
public void Get_All_Entities() { using (var uow = ProviderSetup.UnitFactory.Create()) { for (var i = 0; i < 30; i++) { uow.EntityRepository.AddOrUpdate(GetMockedEntity()); } uow.Complete(); } PostWriteCallback.Invoke(); using (var reader = ReadonlyProviderSetup.ReadonlyUnitFactory.CreateReadonly()) { Assert.AreEqual(30, reader.EntityRepository.GetAll <TypedEntity>().Count()); } }
public void NestedUnitOfWork_NoProblemo() { TypedEntity entity = GetMockedEntity(); TypedEntity entity2 = GetMockedEntity(); AssignFakeIdsIfPassthrough(ProviderSetup.ProviderMetadata, entity); AssignFakeIdsIfPassthrough(ProviderSetup.ProviderMetadata, entity2); using (var outerUnit = ProviderSetup.UnitFactory.Create()) { outerUnit.EntityRepository.AddOrUpdate(entity); var outerTransaction = outerUnit.EntityRepository.Transaction.GetTransactionId(); // Do some nested writing using (var innerUnit = ProviderSetup.UnitFactory.Create()) { Assert.That(innerUnit.EntityRepository.Transaction.GetTransactionId(), Is.Not.EqualTo(outerTransaction)); innerUnit.EntityRepository.AddOrUpdate(entity2); innerUnit.Complete(); } // Do some nested reading using (var innerUnit = ReadonlyProviderSetup.ReadonlyUnitFactory.CreateReadonly()) { innerUnit.EntityRepository.Exists <TypedEntity>(new HiveId(Guid.NewGuid())); } // Do some nested reading with the writer using (var innerUnit = ProviderSetup.UnitFactory.Create()) { innerUnit.EntityRepository.Exists <TypedEntity>(new HiveId(Guid.NewGuid())); } // Do some nested writing using (var innerUnit = ProviderSetup.UnitFactory.Create()) { innerUnit.EntityRepository.AddOrUpdate(entity2); innerUnit.Complete(); } outerUnit.Complete(); } HiveId id1 = entity.Id; HiveId id2 = entity2.Id; using (var outerUnit = ProviderSetup.UnitFactory.Create()) { // Do some nested reading using (var innerUnit = ReadonlyProviderSetup.ReadonlyUnitFactory.CreateReadonly()) { innerUnit.EntityRepository.Exists <TypedEntity>(new HiveId(Guid.NewGuid())); //innerUnit.Complete(); } outerUnit.EntityRepository.AddOrUpdate(entity); outerUnit.Complete(); } PostWriteCallback.Invoke(); using (var unit = ReadonlyProviderSetup.ReadonlyUnitFactory.CreateReadonly()) { var compare = unit.EntityRepository.Get <TypedEntity>(id1); var compare2 = unit.EntityRepository.Get <TypedEntity>(id2); Assert.IsNotNull(compare); Assert.IsNotNull(compare2); } }