Exemplo n.º 1
0
        public void AddAccount_GivenValidCredentialsAndDto_ShouldAddTheAccountSuccessfully(int applicationId, string personNumber)
        {
            // ARRANGE
            var    app         = GetApplication(applicationId);
            var    applicant   = GetApplicant();
            var    addAccount  = GetAddAccount(personNumber);
            var    credentials = GetCredentials();
            string messageXml  = addAccount.Message?.SerializeToXmlString();

            var stubSoapClient = Substitute.For <CcmWebServiceSoap>();
            //var stubSoapClient = new CcmWebServiceSoapClient("CcmWebServiceSoap", "https://dna-ccmapp-ttd.uccu.com/ccm-Test-ws/ccmwebservice/ccmwebservice.asmx");

            var repo = new SoapRepository("ABC123", credentials, stubSoapClient);

            var credentialsHeader = new CredentialsHeader()
            {
                Username  = credentials.Username,
                Password  = credentials.Password,
                Facility  = credentials.Facility,
                CultureId = "en"
            };

            messageXml = HostValueTranslator.UpdateRequestWithHostValues(messageXml, app.HostValues, addAccount.Message?.HostValueParentNode);
            messageXml = HostValueTranslator.UpdateRequestWithHostValues(messageXml, applicant.HostValues, addAccount.Message?.HostValueParentNode);

            var processMessageNodeRequest = new ProcessMessageNodeRequest();

            processMessageNodeRequest.CredentialsHeader = credentialsHeader;
            processMessageNodeRequest.request           = GetXmlNode(messageXml);
            repo.ProcessMessageNodeRequest = processMessageNodeRequest;

            var messageResponse = new MessageResponse()
            {
                TraceNumber   = applicationId.ToString(),
                ResponseCode  = "Success",
                AccountNumber = "2001158945704"
            };
            var messageResponseXml = messageResponse.SerializeToXmlString();

            var processMessageNodeResponse = new ProcessMessageNodeResponse()
            {
                ProcessMessageNodeResult = GetXmlNode(messageResponseXml)
            };

            repo.SoapClient.ProcessMessageNode(processMessageNodeRequest).Returns(processMessageNodeResponse);

            // ACT
            var messageNodeResponse = repo.ProcessMessage(messageXml);

            // ASSERT
            Assert.IsNotNull(repo.MessageResponse);
            Assert.AreEqual("Success", repo.MessageResponse.ResponseCode);
        }