Example #1
0
        public async Task Test_GetCinemaAddressDict()
        {
            // arrange
            var data = new List <LotteCinemaItem>
            {
                new LotteCinemaItem
                {
                    CinemaID           = "8000",
                    DivisionCode       = "1",
                    DetailDivisionCode = "0001",
                },
                new LotteCinemaItem
                {
                    CinemaID           = "8001",
                    DivisionCode       = "1",
                    DetailDivisionCode = "0001",
                },
                new LotteCinemaItem
                {
                    CinemaID           = "8000",
                    DivisionCode       = "2",
                    DetailDivisionCode = "0002",
                }
            };

            foreach (var cinema in data)
            {
                _requesterMock
                .Setup(x => x.Post <GetCinemaDetailItem>(
                           It.IsAny <string>(),
                           It.Is <string>(y =>
                                          y.Contains($"divisionCode:'{cinema.DivisionCode}'") &&
                                          y.Contains($"detailDivisionCode:'{cinema.DetailDivisionCode}'") &&
                                          y.Contains($"cinemaID:'{cinema.CinemaID}'")),
                           It.IsAny <string>()))
                .ReturnsAsync(new GetCinemaDetailItem
                {
                    IsOK          = "true",
                    ResultMessage = "SUCCESS",
                    CinemaDetail  = new LotteCinemaItem
                    {
                        CinemaID           = cinema.CinemaID,
                        DivisionCode       = cinema.DivisionCode,
                        DetailDivisionCode = cinema.DetailDivisionCode,
                        Address            = $"Cinema {cinema.CinemaID}"
                    }
                });
            }

            // action
            var service  = new LotteService(_requesterMock.Object);
            var response = await service.GetCinemaAddressDict(data);

            // assert
            _requesterMock.Verify(m => m.Post <GetCinemaDetailItem>(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2));
            Assert.AreEqual(2, response.Count);

            Assert.IsTrue(response.ContainsKey("8000"));
            Assert.AreEqual("Cinema 8000", response["8000"]);

            Assert.IsTrue(response.ContainsKey("8001"));
            Assert.AreEqual("Cinema 8001", response["8001"]);
        }