示例#1
0
        public async Task <BuyTicketResponseDto> RequestBuyTicketAsync(BuyTicketRequestDto buyTicketRequestDto)
        {
            try
            {
                var response = await httpService.PostAsync <BuyTicketRequestDto, BuyTicketResponseDto>(
                    TicketsEndpoint.BuyTicket, buyTicketRequestDto);

                return(response);
            }
            catch (System.Net.WebException ex)
            {
                throw new Exceptions.WebException("Server exception", ex);
            }
            catch (SocketException ex)
            {
                throw new Exceptions.WebException("Server exception", ex);
            }
        }
        public TicketsServiceTests()
        {
            email = "email";

            acessToken = "AccessToken";

            ticketsDto = new List <TicketDto>
            {
                new TicketDto
                {
                    TicketType      = "TicketDto",
                    ReferenceNumber = "ReferenceNumber1",
                    TicketAreas     = new List <string> {
                        "A"
                    },
                    CreatedAt   = DateTime.Parse("06/06/20 18:00:00"),
                    ActivatedAt = DateTime.Parse("06/06/20 18:01:00"),
                    ExpiredAt   = DateTime.Parse("06/06/20 19:01:00")
                },
                new TicketDto
                {
                    TicketType      = "TicketDto",
                    ReferenceNumber = "ReferenceNumber2",
                    TicketAreas     = new List <string> {
                        "A", "B"
                    },
                    CreatedAt   = DateTime.Parse("06/06/20 19:00:00"),
                    ActivatedAt = DateTime.Parse("06/06/20 19:02:00"),
                    ExpiredAt   = DateTime.Parse("06/06/20 20:02:00")
                },
                new TicketDto
                {
                    TicketType      = "TicketDto",
                    ReferenceNumber = "ReferenceNumber3",
                    TicketAreas     = new List <string> {
                        "A", "B", "C"
                    },
                    CreatedAt   = DateTime.Parse("06/06/20 20:00:00"),
                    ActivatedAt = DateTime.Parse("06/06/20 20:03:00"),
                    ExpiredAt   = DateTime.Parse("06/06/20 11:03:00")
                }
            };

            tickets = new List <Ticket>
            {
                new Ticket
                {
                    TicketType      = "TicketDto",
                    ReferenceNumber = "ReferenceNumber1",
                    TicketAreas     = new List <string> {
                        "A"
                    },
                    CreatedAt   = DateTime.Parse("06/06/20 18:00:00"),
                    ActivatedAt = DateTime.Parse("06/06/20 18:01:00"),
                    ExpiredAt   = DateTime.Parse("06/06/20 19:01:00")
                },
                new Ticket
                {
                    TicketType      = "TicketDto",
                    ReferenceNumber = "ReferenceNumber2",
                    TicketAreas     = new List <string> {
                        "A", "B"
                    },
                    CreatedAt   = DateTime.Parse("06/06/20 19:00:00"),
                    ActivatedAt = DateTime.Parse("06/06/20 19:02:00"),
                    ExpiredAt   = DateTime.Parse("06/06/20 20:02:00")
                },
                new Ticket
                {
                    TicketType      = "TicketDto",
                    ReferenceNumber = "ReferenceNumber3",
                    TicketAreas     = new List <string> {
                        "A", "B", "C"
                    },
                    CreatedAt   = DateTime.Parse("06/06/20 20:00:00"),
                    ActivatedAt = DateTime.Parse("06/06/20 20:03:00"),
                    ExpiredAt   = DateTime.Parse("06/06/20 11:03:00")
                }
            };

            ticketTypesDto = new List <TicketTypeDto>
            {
                new TicketTypeDto
                {
                    Id            = 1,
                    Name          = "TickeType1",
                    Coefficient   = 1,
                    DurationHours = 11
                },
                new TicketTypeDto
                {
                    Id            = 2,
                    Name          = "TickeType2",
                    Coefficient   = 2,
                    DurationHours = 12
                },
                new TicketTypeDto
                {
                    Id            = 3,
                    Name          = "TickeType3",
                    Coefficient   = 3,
                    DurationHours = 13
                }
            };

            ticketTypes = new List <TicketType>
            {
                new TicketType
                {
                    Id            = 1,
                    Name          = "TickeType1",
                    Coefficient   = 1,
                    DurationHours = 11
                },
                new TicketType
                {
                    Id            = 2,
                    Name          = "TickeType2",
                    Coefficient   = 2,
                    DurationHours = 12
                },
                new TicketType
                {
                    Id            = 3,
                    Name          = "TickeType3",
                    Coefficient   = 3,
                    DurationHours = 13
                }
            };

            areasDto = new List <AreaDto>
            {
                new AreaDto
                {
                    Id          = 1,
                    Name        = "Area1",
                    Description = "Description1"
                },
                new AreaDto
                {
                    Id          = 2,
                    Name        = "Area2",
                    Description = "Description2"
                },
                new AreaDto
                {
                    Id          = 3,
                    Name        = "Area3",
                    Description = "Description3"
                }
            };

            ticketTypeId = 1;
            areasId      = new List <int> {
                1
            };

            getTicketPriceResponseDto = new GetTicketPriceResponseDto {
                TotalPrice = 100
            };

            buyTicketRequestDto = new BuyTicketRequestDto
            {
                TicketTypeId    = 1,
                Email           = "email",
                Price           = 100,
                Description     = "Description",
                CardNumber      = "CardNumber",
                ExpirationMonth = "ExpirationMonth",
                ExpirationYear  = "ExpirationYear",
                CVV2            = "CVV2"
            };

            buyTicketResponseDto = new BuyTicketResponseDto
            {
                PayResult  = "PayResult",
                TotalPrice = 100,
                BoughtAt   = DateTime.Parse("06/06/20 19:00:01")
            };

            tokenServiceMock = new Mock <ITokenService>();
            tokenServiceMock
            .Setup(ts => ts.RefreshTokenAsync())
            .ReturnsAsync(acessToken);

            httpServiceMock = new Mock <IHttpService>();
            httpServiceMock
            .SetupSequence(hs => hs.GetAsync <IEnumerable <TicketDto> >(It.IsAny <Uri>(), It.IsAny <string>()))
            .ReturnsAsync(ticketsDto)
            .ThrowsAsync(new System.Net.WebException());

            httpServiceMock
            .SetupSequence(hs => hs.GetAsync <IList <TicketTypeDto> >(It.IsAny <Uri>(), It.IsAny <string>()))
            .ReturnsAsync(ticketTypesDto)
            .ThrowsAsync(new System.Net.WebException());

            httpServiceMock
            .SetupSequence(hs => hs.GetAsync <IList <AreaDto> >(It.IsAny <Uri>(), It.IsAny <string>()))
            .ReturnsAsync(areasDto)
            .ThrowsAsync(new System.Net.WebException());

            httpServiceMock
            .SetupSequence(hs => hs.PostAsync <GetTicketPriceRequestDto, GetTicketPriceResponseDto>(
                               It.IsAny <Uri>(), It.IsAny <GetTicketPriceRequestDto>(), It.IsAny <string>()))
            .ReturnsAsync(getTicketPriceResponseDto)
            .ThrowsAsync(new System.Net.WebException());

            httpServiceMock
            .SetupSequence(hs => hs.PostAsync <BuyTicketRequestDto, BuyTicketResponseDto>(
                               It.IsAny <Uri>(), It.IsAny <BuyTicketRequestDto>(), It.IsAny <string>()))
            .ReturnsAsync(buyTicketResponseDto)
            .ThrowsAsync(new System.Net.WebException());

            ticketsService = new TicketsService(tokenServiceMock.Object, httpServiceMock.Object);
        }