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

                var registro = new TabelaTesteWithGuidKey()
                {
                    Propriedade = Guid.NewGuid().ToString()
                };

                var saveResult = repository.AddOrUpdateAsync(registro).Result;

                var alteracoes = uow.SaveAndCommitAsync().Result;
                Assert.IsTrue(alteracoes == 1);

                var removeResult     = repository.RemoveAsync(registro.Id).Result;
                var saveRemoveResult = uow.SaveAndCommitAsync().Result;
                Assert.IsTrue(alteracoes == 1);

                registro = repository.FindAsync(p => p.Id == registro.Id).Result.FirstOrDefault();
                Assert.Null(registro);
            }
        }