public void CRUD_Test()
        {
            var repositoryContext = new RepositoryContext();

            Account testAccount = TestEntities.GetTestAccount(
                1,
                Guid.Parse("F341B4FB-4CC3-4FDB-B7CF-8DCD45365341"),
                "AccAddr");

            try
            {
                // delete test account
                TestDataCleaner.DeleteTestAccount(repositoryContext, testAccount.AccountId);

                // create account
                repositoryContext.AccountRepository.Upsert(testAccount);

                // create
                AccountAddress expectedAccountAddress = TestEntities.GetTestAccountAddress(1, testAccount.AccountId);
                repositoryContext.AccountAddressRepository.Upsert(expectedAccountAddress);

                // read
                AccountAddress actualAccountAddress =
                    repositoryContext.AccountAddressRepository.Get(expectedAccountAddress.AccountId);
                Assert.NotNull(actualAccountAddress);
                Assert.True(EntityComparer.AreAccountAddressEqual(expectedAccountAddress, actualAccountAddress));

                // update
                AccountAddress expectedAccountAddressNew = TestEntities.GetTestAccountAddress(
                    2,
                    expectedAccountAddress.AccountId);

                repositoryContext.AccountAddressRepository.Upsert(expectedAccountAddressNew);
                Assert.AreEqual(expectedAccountAddress.AccountId, expectedAccountAddressNew.AccountId);

                AccountAddress actualAccountAddressNew =
                    repositoryContext.AccountAddressRepository.Get(expectedAccountAddressNew.AccountId);
                Assert.NotNull(actualAccountAddressNew);
                Assert.True(
                    EntityComparer.AreAccountAddressEqual(expectedAccountAddressNew, actualAccountAddressNew));

                // delete
                repositoryContext.AccountRepository.Delete(expectedAccountAddress.AccountId);

                // read by id
                actualAccountAddress =
                    repositoryContext.AccountAddressRepository.Get(expectedAccountAddress.AccountId);
                Assert.Null(actualAccountAddress);
            }
            finally
            {
                // delete test account
                TestDataCleaner.DeleteTestAccount(repositoryContext, testAccount.AccountId);

                repositoryContext.Dispose();
            }
        }