Esempio n. 1
0
        public DbParameter CreateErrorMessageParameter(IDatabaseConnectionService databaseConnection,
                                                       FileDownloadResult fileDownloadResult)
        {
            FilePayload filePayload = fileDownloadResult.FilePayload;
            string      message     = errorMessageService.GetErrorMessage(fileDownloadResult.FailedReason, filePayload,
                                                                          StatsDownloadService.FileDownload);

            return(CreateErrorMessageParameter(databaseConnection, message));
        }
Esempio n. 2
0
        public void SendEmail(FileDownloadResult fileDownloadResult)
        {
            FailedReason failedReason = fileDownloadResult.FailedReason;

            string errorMessage = errorMessageService.GetErrorMessage(failedReason, fileDownloadResult.FilePayload,
                                                                      StatsDownloadService.FileDownload);

            SendEmail(FileDownloadFailedSubject, errorMessage);
        }
        public void SendEmail_WhenInvokedWithFailedUsersData_SendsEmail()
        {
            var failedUsersData = new FailedUserData[0];

            errorMessageServiceMock.GetErrorMessage(failedUsersData).Returns("ErrorMessage");

            systemUnderTest.SendEmail(failedUsersData);

            emailServiceMock.Received(1).SendEmail("DisplayName - User Data Failed", "ErrorMessage");
        }
        CreateErrorMessageParameter_WhenInvokedWithFileDownloadResult_CreatesFileDownloadResultErrorMessageParameter()
        {
            var filePayload        = new FilePayload();
            var fileDownloadResult = new FileDownloadResult(FailedReason.FileDownloadFailedDecompression, filePayload);

            errorMessageServiceMock
            .GetErrorMessage(fileDownloadResult.FailedReason, filePayload, StatsDownloadService.FileDownload)
            .Returns("Error Message");

            DbParameter actual =
                systemUnderTest.CreateErrorMessageParameter(databaseConnectionServiceMock, fileDownloadResult);

            Assert.That(actual.ParameterName, Is.EqualTo("@ErrorMessage"));
            Assert.That(actual.DbType, Is.EqualTo(DbType.String));
            Assert.That(actual.Direction, Is.EqualTo(ParameterDirection.Input));
            Assert.That(actual.Value, Is.EqualTo("Error Message"));
        }
        public void AddUsers_WhenBitcoinAddressExceedsSize_UserIsRejected()
        {
            List <DbParameter> actualParameters = default;

            SetUpDatabaseConnectionCreateDbCommandMock(null,
                                                       new Action <List <DbParameter> >[] { null, parameters => { actualParameters = parameters; } });

            errorMessageServiceMock.GetErrorMessage(Arg.Is <FailedUserData>(failedUser =>
                                                                            failedUser.RejectionReason == RejectionReason.BitcoinAddressExceedsMaxSize))
            .Returns("btc");

            InvokeAddUsers(users: new List <UserData>
            {
                new UserData(0, "", 10, 100, 1000)
                {
                    BitcoinAddress = new string(' ', 51)
                }
            });

            Assert.That(actualParameters.Count, Is.AtLeast(2));
            Assert.That(actualParameters[2], Is.EqualTo(rejectionReasonParameterMock));
            Assert.That(actualParameters[2].Value, Is.EqualTo("btc"));
        }
Esempio n. 6
0
        public void GetErrorMessage_WhenBitcoinAddressExceedsMaxSize_ReturnsBitcoinAddressExceedsMaxSizeMessage()
        {
            var failedUserData = new FailedUserData(0, RejectionReason.BitcoinAddressExceedsMaxSize,
                                                    new UserData(0, "name", 0, 0, 0)
            {
                BitcoinAddress = "address"
            });
            string actual = systemUnderTest.GetErrorMessage(failedUserData);

            Assert.That(actual,
                        Is.EqualTo(
                            "There was a problem with the user's data. The user 'name' has a bitcoin address length of '7' and exceeded the max bitcoin address length. The user should shorten their bitcoin address. You should contact your technical advisor to review the logs and rejected users."));
        }