コード例 #1
0
        static void SendMessage(string ssn, string msgId, string msgText)
        {
            Console.WriteLine("--- Sending the test message to Viestit-Service ---");
            Console.WriteLine(" * Press enter to confirm action *");
            Console.ReadLine();
            var msg = new ViestitMessage
            {
                SocialSecurityNumber = ssn,
                Id         = msgId,
                Topic      = "TestiViesti",
                SenderName = "HubClientTestingSoftware",
                Text       = msgText,
                MsgId      = "123",
                Links      = new List <ViestitMessageLink>(),
                Files      = new List <ViestitMessageFile>()
            };

            // Hardcoded links and files just to make sure everything works
            msg.Links.Add(new ViestitMessageLink
            {
                Description = "Linkki asiointiin",
                Url         = "www.google.fi"
            });
            msg.Links.Add(new ViestitMessageLink
            {
                Description = "Toinen linkki asiointiin",
                Url         = "www.google.fi"
            });
            msg.Files.Add(new ViestitMessageFile
            {
                Content     = Base64Files.PNG,
                ContentType = "image/jpeg",
                Name        = "Kuva.jpg",
                Size        = 16
            });

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

            Console.WriteLine(JsonConvert.SerializeObject(msgState[0]) + Environment.NewLine);
        }
コード例 #2
0
        public async void TestAddTargets()
        {
            // ARRANGE
            const string           ssn                = "123456-7890";
            const MessageStateCode msgCode            = MessageStateCode.Success;
            const string           msgCodeDescription = "Asia on tallennettuna ja näkyy asiakkaalle.";
            const string           sentMsgId          = "SPAv2-1234-test";
            const string           viestitId          = "TiliTunniste";
            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ä.";

            var linkList = new List <ViestitMessageLink>
            {
                new ViestitMessageLink {
                    Url = "TestUrl.com", Description = "UrlDescription"
                }
            };
            var fileList = new List <ViestitMessageFile>
            {
                new ViestitMessageFile {
                    Name = "Filename", Size = 10, Content = "Base64 text", ContentType = "application/pdf"
                }
            };

            var viestitMessage = new ViestitMessage
            {
                SocialSecurityNumber = ssn,
                Id         = sentMsgId,
                MsgId      = sentMsgNumber,
                Topic      = sentTopic,
                SenderName = sentName,
                Text       = sentText,
                Links      = linkList,
                Files      = fileList
            };

            // response
            dynamic responseMessage = new JObject();

            responseMessage.tilaKoodi       = ResponseStateCode.Success;
            responseMessage.tilaKoodiKuvaus = "TestiKuvaus";
            responseMessage.sanomaTunniste  = sanomaTunniste;
            responseMessage.aikaleima       = (long)12345;
            responseMessage.kohdeMaara      = 1;
            responseMessage.kohteet         = new JArray();
            dynamic kohde = new JObject();

            kohde.viranomaisTunniste = sentMsgId;
            kohde.asiakkaat          = new JArray();
            responseMessage.kohteet.Add(kohde);
            dynamic asiakas = new JObject();

            asiakas.asiakasTunnus        = ssn;
            asiakas.tunnusTyyppi         = "SSN";
            asiakas.asiointitiliTunniste = viestitId;
            asiakas.kohteenTila          = msgCode;
            asiakas.kohteenTilaKuvaus    = msgCodeDescription;
            kohde.asiakkaat.Add(asiakas);

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

            // ACT
            var responseData = await client.SendMessageToViestit(new List <ViestitMessage> {
                viestitMessage
            });

            // ASSERT
            Func <HttpContent, bool> requestContainsCorrectData = (content =>
            {
                var data = JsonConvert.DeserializeObject <dynamic>(content.ReadAsStringAsync().Result);
                return(data.asiakasTunnus == ssn &&
                       data.viranomaisTunniste == sentMsgId &&
                       data.asiaNumero == sentMsgNumber &&
                       data.nimeke == sentTopic &&
                       data.lahettajaNimi == sentName &&
                       data.kuvausTeksti == sentText &&
                       data.tiedostot.Count == 1 &&
                       data.linkit.Count == 1 &&
                       data.lukuKuittaus == false &&
                       data.vastaanottoVahvistus == false);
            });

            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("/lisaakohteita") &&
                                               requestContainsCorrectData(req.Content)
                                               ),
                ItExpr.IsAny <CancellationToken>()
                );
        }