public async Task SignatureRepositoryTestsUpdateSignatureWorksForValidInput()
        {
            var inputSignature = new Signature {
                Signer = new User {
                    UserId = "007007", Name = "Bill"
                }
            };
            var       signatureRepository = new SignatureRepository();
            Signature?addedSignature      = await signatureRepository.AddSignature(inputSignature);

            bool initialSigningStatus = addedSignature.IsSigned;

            Assert.IsNotNull(addedSignature);
            var updateSignatureInput = new Signature {
                Id = addedSignature.Id, Signer = new User {
                    UserId = "007007", Name = "Bill G"
                }, IsSigned = true, SignedDateTime = DateTime.UtcNow, Text = "Bill G"
            };
            Signature?updatedSignature = await signatureRepository.UpdateSignature(updateSignatureInput);

            Assert.AreEqual(updateSignatureInput.Id, updatedSignature.Id);
            Assert.AreEqual(updatedSignature.SignedDateTime, updateSignatureInput.SignedDateTime);
            Assert.AreEqual(updatedSignature.Text, updateSignatureInput.Text);

            // Signer shouldn't be updated in SingatureRepository
            Assert.IsTrue(addedSignature.Signer.Equals(updateSignatureInput.Signer));
            Assert.IsTrue(updatedSignature.IsSigned);
            Assert.AreNotEqual(updatedSignature.IsSigned, initialSigningStatus);
        }
 public async Task SignatureRepositoryTestsUpdateSignatureThrowsApiExceptionForInvalidId()
 {
     var inputSignature = new Signature {
         Signer = new User {
             UserId = "007007", Name = "Bill"
         }
     };
     var signatureRepository = new SignatureRepository();
     await signatureRepository.UpdateSignature(inputSignature);
 }
        public async Task SignatureRepositoryTestsUpdateSignatureThrowsApiExceptionForSingingComplete()
        {
            var inputSignature = new Signature {
                Signer = new User {
                    UserId = "007007", Name = "Bill"
                }, IsSigned = true
            };
            var       signatureRepository = new SignatureRepository();
            Signature?addedSignature      = await signatureRepository.AddSignature(inputSignature);

            Assert.IsNotNull(addedSignature);

            var updateSignatureInput = new Signature {
                Signer = new User {
                    UserId = "007007", Name = "Bill"
                }, IsSigned = false
            };
            await signatureRepository.UpdateSignature(updateSignatureInput);
        }