public void Repository_Can_Insert()
        {
            using (var context = new InMemoryContext())
            {
                IRepository <TabelaTesteWithGuidKey, Guid> repository = new TabelaTesteWithGuidKeyRepository(context, GetUserContextService());
                var uow = new UnitOfWork(context, Substitute.For <ILogger <UnitOfWork> >());

                repository.AddOrUpdate(new TabelaTesteWithGuidKey()
                {
                    Propriedade = Guid.NewGuid().ToString()
                });

                var alteracoes = uow.SaveAndCommit();
                Assert.IsTrue(alteracoes == 1);

                var chave = repository.GetAll().FirstOrDefault();
                Assert.NotNull(chave);
                Assert.IsTrue(chave.Id != Guid.Empty);

                var registro = repository.GetById(chave.Id);
                Assert.NotNull(registro);

                registro.Propriedade = "NewValue";
                uow.SaveAndCommit();

                registro = repository.GetById(chave.Id);
                Assert.NotNull(registro);
                Assert.AreEqual(registro.Propriedade, "NewValue");
            }
        }