Example #1
0
        public void AuditEventWithNoDataEncryptsAndDecryptsSuccessfully()
        {
            var mockCase       = new MockCase();
            var mockAttachment = new MockAttachment()
            {
                Filename = GetRandomFilename()
            };

            var request = AuditRequest.AsChangeTo(mockCase, c => c.SysRef)
                          .WithNoData()
                          .AsEvent(nameof(this.AuditEventWithNoDataEncryptsAndDecryptsSuccessfully));
            var auditEvent = new AuditEvent(request);

            var key = "IlgY+s8d2q+QVXNx3ULHaUmNmcjgKQGXZFvxysqF5mA=";

            var crypto           = new MessageEncryption();
            var encryptedMessage = crypto.EncryptMessageBody(auditEvent, key);

            var decryptedEvent = crypto.DecryptMessageBody <AuditEvent>(encryptedMessage, key);

            decryptedEvent.TargetType.Should().Be(typeof(MockCase).Name);
            decryptedEvent.TargetId.Should().Be(mockCase.SysRef);

            decryptedEvent.DataType.Should().BeNull();
            decryptedEvent.DataId.Should().BeNull();

            Assert.IsTrue(object.ReferenceEquals(null, decryptedEvent.Data));
        }
Example #2
0
        public void AuditEventWithDataEncryptsAndDecryptsSuccessfully()
        {
            var mockCase       = new MockCase();
            var mockAttachment = new MockAttachment()
            {
                Filename = GetRandomFilename()
            };

            var request = AuditRequest.AsChangeTo(mockCase, c => c.SysRef)
                          .WithData(mockAttachment, a => a.Id.ToString(CultureInfo.InvariantCulture))
                          .AsEvent(nameof(this.AuditEventWithDataEncryptsAndDecryptsSuccessfully));
            var auditEvent = new AuditEvent(request);

            var key = "IlgY+s8d2q+QVXNx3ULHaUmNmcjgKQGXZFvxysqF5mA=";

            var crypto           = new MessageEncryption();
            var encryptedMessage = crypto.EncryptMessageBody(auditEvent, key);

            var decryptedEvent = crypto.DecryptMessageBody <AuditEvent>(encryptedMessage, key);

            decryptedEvent.TargetType.Should().Be(typeof(MockCase).Name);
            decryptedEvent.TargetId.Should().Be(mockCase.SysRef);

            decryptedEvent.DataType.Should().Be(typeof(MockAttachment).FullName);
            decryptedEvent.DataId.Should().Be(mockAttachment.Id.ToString(CultureInfo.InvariantCulture));

            Assert.IsFalse(object.ReferenceEquals(null, decryptedEvent.Data));

            string dataAsJson       = JsonConvert.SerializeObject(decryptedEvent.Data);
            string attachmentAsJson = JsonConvert.SerializeObject(mockAttachment);

            dataAsJson.Should().Be(attachmentAsJson);
        }