public void TestInsertAndGet()
        {
            CrudProxy proxy = new BankAccountProxy();
            BankAccountDto dto1 = this.GetBankAccount();
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            BankAccountDto dto2 = (BankAccountDto) proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, dto2);
        }
        public void TestInsertAndNullMechantFeeId()
        {
            CrudProxy proxy = new BankAccountProxy();
            BankAccountDto dto1 = this.GetBankAccount();
            dto1.MerchantFeeAccountUid = null;

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            BankAccountDto dto2 = (BankAccountDto)proxy.GetByUid(dto1.Uid);

            Assert.AreEqual(dto1.MerchantFeeAccountUid, dto2.MerchantFeeAccountUid);
        }
        public void TestDelete()
        {
            CrudProxy proxy = new BankAccountProxy();

            BankAccountDto dto1 = this.GetBankAccount();
            proxy.Insert(dto1);

            proxy.DeleteByUid(dto1.Uid);

            try
            {
                proxy.GetByUid(dto1.Uid);
                throw new Exception("The expected exception was not thrown.");
            }
            catch(RestException ex)
            {
                Assert.AreEqual("RecordNotFoundException", ex.Type, "Incorrect exception type.");
            }
        }
        public void TestUpdate()
        {
            CrudProxy proxy = new BankAccountProxy();
            BankAccountDto dto1 = this.GetBankAccount();
            proxy.Insert(dto1);

            string lastUpdatedUid = dto1.LastUpdatedUid;

            dto1.Type = AccountType.Liability;

            proxy.Update(dto1);

            Assert.IsTrue(dto1.LastUpdatedUid != lastUpdatedUid);

            BankAccountDto dto2 = (BankAccountDto) proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, dto2);
        }