コード例 #1
0
        static void SendPrintableMessage(string ssn, string msgId, string msgText)
        {
            Console.WriteLine("--- Sending the printable test message to Viestit-Service (but not to printing) ---");
            Console.WriteLine(" * Press enter to confirm action *");
            Console.ReadLine();

            var msg = new PrintableViestitMessage
            {
                SocialSecurityNumber = ssn,
                Id         = msgId + "-1",
                Topic      = "TestiViesti",
                SenderName = "HubClientTestingSoftware",
                Text       = msgText,
                MsgId      = "123",
                File       = new ViestitMessageFile // Hardcoded file just to make sure everything works
                {
                    Content     = Base64Files.PDF,
                    ContentType = "application/pdf",
                    Name        = "PDF-kirje.pdf",
                    Size        = 40
                },
                TestingOnlyDoNotSendPrinted = true, // NOTE: Very important to keep this true
                Address = new AddressInformation
                {
                    RecipientName = "Testi Vastaanottaja",
                    StreetAddress = "Testi Osoite Ei Ole Olemassa",
                    PostalCode    = "00000",
                    City          = "Testikaupunki",
                    CountryCode   = "FI"
                },
                PrintingProvider = "Edita" // NOTE: Has to be a valid provider
            };

            var msgState = _client.SendPrintableMessageToViestit(new List <PrintableViestitMessage> {
                msg
            }).GetAwaiter().GetResult();

            Console.WriteLine(JsonConvert.SerializeObject(msgState[0]) + Environment.NewLine);
        }
コード例 #2
0
        public async void TestSendPrintableMessage(bool?sendToPrinting)
        {
            // ARRANGE
            const string           ssn                = "123456-7890";
            const MessageStateCode msgCode            = MessageStateCode.SuccessButInProcess;
            const string           msgCodeDescription = "Asia on tallennettuna ja näkyy asiakkaalle.";
            const string           sentMsgId          = "SPAv2-1234-test";
            const long             timeStamp          = 1568615412083;
            const string           sanomaTunniste     = "123-123";

            // request
            const string sentMsgNumber = "ViestinTunniste";
            const string sentTopic     = "Otsikko";
            const string sentName      = "Lähettäjänimi";
            const string sentText      = "Sisältötekstiä.";

            const string recipientName = "Maisa Testaaja";
            const string streetAddress = "Lähitie 123 a 36";
            const string postalCode    = "12345";
            const string city          = "Betonila";
            const string countryCode   = "FI";

            const string printingProvider = "Printtifirma";
            var          file             = new ViestitMessageFile {
                Name = "Filename", Size = 10, Content = "Base64 text", ContentType = "application/pdf"
            };

            var printableMessage = new PrintableViestitMessage
            {
                SocialSecurityNumber = ssn,
                Id         = sentMsgId,
                File       = file,
                MsgId      = sentMsgNumber,
                Topic      = sentTopic,
                SenderName = sentName,
                Text       = sentText,
                Address    = new AddressInformation
                {
                    RecipientName = recipientName,
                    StreetAddress = streetAddress,
                    PostalCode    = postalCode,
                    City          = city,
                    CountryCode   = countryCode
                },
                PrintingProvider = printingProvider
            };

            if (sendToPrinting.HasValue)
            {
                printableMessage.TestingOnlyDoNotSendPrinted = sendToPrinting.Value;
            }

            // response
            dynamic responseMessage = new JObject();

            responseMessage.aikaleima       = timeStamp;
            responseMessage.tilaKoodi       = msgCode;
            responseMessage.tilaKoodiKuvaus = msgCodeDescription;
            responseMessage.sanomaTunniste  = sanomaTunniste;

            var mockResponse = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(responseMessage.ToString())
            };
            var client = GetClient(mockResponse);

            // ACT
            var responseData = await client.SendPrintableMessageToViestit(new List <PrintableViestitMessage> {
                printableMessage
            });

            // ASSERT
            Func <HttpContent, bool> requestContainsCorrectData = content =>
            {
                var data = JsonConvert.DeserializeObject <dynamic>(content.ReadAsStringAsync().Result);
                return(data.asiakasTunnus == ssn &&
                       data.osoiteNimi == recipientName &&
                       data.osoiteLahiosoite == streetAddress &&
                       data.osoitePostinumero == postalCode &&
                       data.osoitePostitoimipaikka == city &&
                       data.osoiteMaakoodi == countryCode &&
                       data.tiedostot.Count == 1 &&
                       data.viranomaisTunniste == sentMsgId &&
                       data.asiaNumero == sentMsgNumber &&
                       data.nimeke == sentTopic &&
                       data.lahettajaNimi == sentName &&
                       data.kuvausTeksti == sentText &&
                       data.lukuKuittaus == false &&
                       data.vastaanottoVahvistus == false &&
                       data.paperi == false &&
                       data.lahetaTulostukseen == !(sendToPrinting ?? false)); // NOTE: Default must be true!
            };

            Assert.Equal(responseData[0].StateCode, msgCode);
            Assert.Equal(responseData[0].StateDescription, msgCodeDescription);
            Assert.Equal(responseData[0].Id, sanomaTunniste);

            _handlerMock.Protected().Verify(
                "SendAsync",
                Times.Exactly(1),
                ItExpr.Is <HttpRequestMessage>(req =>
                                               req.Method == HttpMethod.Post &&
                                               req.RequestUri == GetExpectedUri("/lahetaviesti") &&
                                               requestContainsCorrectData(req.Content)
                                               ),
                ItExpr.IsAny <CancellationToken>()
                );
        }