public async Task Customer_update_adds_comment()
        {
            var db = MakeDbContext(nameof(Customer_update_adds_comment));
            var existingTicketId = await GivenExistingTicket(db);

            var updateCommand = new TicketCustomerUpdateCommand
            {
                Id          = existingTicketId,
                Comment     = $"Some New Comment {Guid.NewGuid()}",
                SubmitterId = $"test{Guid.NewGuid()}@example.com"
            };
            var handler = new TicketUpdateHandler(db);
            await handler.Handle(updateCommand, CancellationToken.None);

            var detailHandler  = new TicketDetailsHandler(db);
            var detailsRequest = new TicketDetailsRequest
            {
                Id = existingTicketId
            };
            var ticket = await detailHandler.Handle(detailsRequest, CancellationToken.None);

            ticket.Comments.Count.Should().Be(1);
            ticket.Comments[0].Text.Should().Be(updateCommand.Comment);
            ticket.Comments[0].SubmitterId.Should().Be(updateCommand.SubmitterId);
            ticket.Comments[0].DateEntered.Should().BeCloseTo(DateTime.UtcNow, TimeSpan.FromSeconds(5));
        }
Esempio n. 2
0
        public async Task Create_Details_RoundTrip()
        {
            var command = new SubmitTicketCommand
            {
                Title          = $"Title - {Guid.NewGuid()}",
                Details        = $"Details - {Guid.NewGuid()}",
                SubmitterEmail = $"email{Guid.NewGuid()}@example.com",
                SubmitterName  = $"Test User {Guid.NewGuid()}"
            };

            var dbContext = MakeDbContext(nameof(Create_Details_RoundTrip));

            var handler = new SubmitTicketHandler(dbContext);

            var result = await handler.Handle(command, CancellationToken.None);

            result.TicketId.Should().NotBeEmpty();

            var detailHandler  = new TicketDetailsHandler(dbContext);
            var detailsRequest = new TicketDetailsRequest
            {
                Id = result.TicketId
            };
            var ticket = await detailHandler.Handle(detailsRequest, CancellationToken.None);

            ticket.Should().NotBeNull();
            ticket.Should().BeEquivalentTo(command);
            ticket.Status.Should().Be(TicketStatus.New);
            ticket.DateSubmitted.Should().BeCloseTo(DateTime.UtcNow, 2000);
            ticket.DateClosed.Should().BeNull();
        }
Esempio n. 3
0
        public async Task GetsCorrectTrack()
        {
            //лучше создать и добавить новый тикет
            var expected = await _context.Tickets.Select(t => new
            {
                t.Id,
                t.Track
            })
                           .FirstAsync();

            var query = new TicketDetails()
            {
                Id = expected.Id
            };
            var handler = new TicketDetailsHandler(_context, GetMapper());

            var result = (await handler.Handle(query, new System.Threading.CancellationToken()))
                         .Ticket
                         .Entries;

            CollectionAssert.IsNotEmpty(result);

            Assert.AreEqual(expected.Track.Count(), result.Count());

            CollectionAssert.AreEqual(expected.Track, result, new TrackComparer());
        }
Esempio n. 4
0
        public async Task CanGetTicket()
        {
            var ticket = await _context.Tickets.FirstAsync();

            var query = new TicketDetails()
            {
                Id = ticket.Id
            };
            var handler = new TicketDetailsHandler(_context, GetMapper());

            var result = await handler.Handle(query, new System.Threading.CancellationToken());

            Assert.IsNotNull(result as TicketDetailsVm);
        }
Esempio n. 5
0
        public void Throws_onWrongIdn()
        {
            const int InvalidId = -1;
            string    errorMsg  = $"Entity \"Ticket\" ({InvalidId}) was not found.";
            var       query     = new TicketDetails()
            {
                Id = InvalidId
            };
            var handler = new TicketDetailsHandler(_context, GetMapper());

            var act = Assert.ThrowsAsync <NotFoundException>(async() =>
                                                             await handler.Handle(query, new System.Threading.CancellationToken()));

            StringAssert.AreEqualIgnoringCase(errorMsg, act.Message);
        }
Esempio n. 6
0
        public async Task GetsCorrectIssuer()
        {
            var expected = await _context.Tickets.Select(t => new
            {
                t.Id,
                t.Issuer
            })
                           .FirstAsync();

            var query = new TicketDetails()
            {
                Id = expected.Id
            };
            var handler = new TicketDetailsHandler(_context, GetMapper());

            var result = await handler.Handle(query, new System.Threading.CancellationToken());

            Assert.AreEqual(expected.Issuer.Id, result.Ticket.Issuer.Id);
            Assert.AreEqual(expected.Issuer.Name, result.Ticket.Issuer.Name);
        }
Esempio n. 7
0
        public async Task GetsCorrectDetails()
        {
            //лучше создать и добавить новый тикет
            var expected = await _context.Tickets.Select(t => new
            {
                t.Id,
                t.Issue,
                t.TicketStatus
            })
                           .FirstAsync();

            var query = new TicketDetails()
            {
                Id = expected.Id
            };
            var handler = new TicketDetailsHandler(_context, GetMapper());

            var result = await handler.Handle(query, new System.Threading.CancellationToken());

            Assert.AreEqual(expected.Id, result.Ticket.Id);
            Assert.AreEqual(expected.Issue, result.Ticket.Issue);
            Assert.AreEqual((int)expected.TicketStatus, result.Ticket.TicketStatus);
        }