public void LearnerRefProvider_Creates_New_LearnerRef_And_Logs()
        {
            // Arrange
            var anonymiseLog = new AnonymiseLog();
            var learningReferenceProvider = new LearnerReferenceProvider(anonymiseLog);

            // Act
            var result = learningReferenceProvider.ProvideNewReference("123");

            // Assert
            result.Should().Be("1");
            anonymiseLog.Log.Should().NotBeEmpty();
            anonymiseLog.Log.Should().HaveCount(1);
            anonymiseLog.Log.First().FieldName.Should().Be("LearnRefNumber");
            anonymiseLog.Log.First().OldValue.Should().Be("123");
            anonymiseLog.Log.First().NewValue.Should().Be("1");
        }
        public void LearnerAnonymiser_Process_MessageGetsAnonymised()
        {
            // Arrange
            var anonymiseLog = new AnonymiseLog();
            var learningReferenceProvider = new LearnerReferenceProvider(anonymiseLog);
            var ulnProvider       = new ULNProvider(anonymiseLog);
            var learnerAnonymiser = new LearnerAnonymiser(ulnProvider, learningReferenceProvider);

            var messageLearner = new Loose.MessageLearner
            {
                AddLine1       = "Blah",
                AddLine3       = "Blah",
                LearnRefNumber = "123",
                ULN            = 321
            };

            // Act
            var result = learnerAnonymiser.Process(messageLearner);

            // Assert
            result.Should().NotBeNull();
            result.Should().Equals(messageLearner);

            result.LearnRefNumber.Should().Equals("1");
            result.ULN.Should().Equals(9000000105);

            result.GivenNames.Should().Equals("GivenNames");
            result.FamilyName.Should().Equals("FamilyName");

            result.AddLine1.Should().Equals("Address line 1");
            result.AddLine2.Should().Equals("Address line 2");
            result.AddLine3.Should().Equals("Address Line 3");
            result.AddLine3.Should().Equals("Address Line 4");

            anonymiseLog.Log.Should().NotBeNull();
            anonymiseLog.Log.Should().NotBeEmpty();
            anonymiseLog.Log.Should().HaveCount(2);
        }