Newer
Older
using FitConnect.Models;
using FitConnect.Models.v1.Api;
using FluentAssertions;
using Microsoft.Extensions.Logging;
public class RejectSubmissionTest : EndToEndTestBase {
[Order(5)]
[Test]
public void CleanServer() {
var submissions = Subscriber.GetAvailableSubmissionsAsync(Settings.DestinationId).Result;
foreach (var submission in submissions)
Subscriber.RejectSubmissionAsync(submission,
new Problems(Problems.ProblemTypeEnum.MissingData, "Server cleanup"))
.Wait();
}
catch (Exception e) {
Logger.LogError(e, "Error rejecting submission {SubmissionId}", submission);
Subscriber.GetAvailableSubmissionsAsync(Settings.DestinationId).Result.Count().Should()
.Be(0);
[Order(10)]
[Test]
public void SendingSubmission() {
.WithDestination(Settings.DestinationId)
.WithServiceType("Straight forward test", Settings.LeikaKey)
.WithXmlData(@"<user><name>John Doe</name></user>")
.WithAttachments(new Attachment("Test.pdf", "A simple PDF"))
_caseId = submission.CaseId!;
_submissionId = submission.Id!;
_caseId.Should().NotBeNull();
_submissionId.Should().NotBeNull();
}
[Test]
[Order(20)]
public void Sender_GetSubmissionState() {
// Act
var status = Sender.GetStatusForSubmissionAsync(_caseId, Settings.DestinationId).Result;
// Assert
status.Count.Should().BeGreaterThan(0);
status.ForEach(
s => Logger.LogInformation("Status {When} {Event}", s.EventTime, s.EventType));
}
[Test]
[Order(30)]
public void Subscriber_GetSubmissionState() {
// Act
var status = Subscriber.GetStatusForSubmissionAsync(_caseId, Settings.DestinationId).Result;
// Assert
status.Count.Should().BeGreaterThan(0);
status.ForEach(
s => Logger.LogInformation("Status {When} {Event}", s.EventTime, s.EventType));
}
[Test]
[Order(40)]
public void Reject_Submission() {
var subscriberWithSubmission = Subscriber.RequestSubmissionAsync(_submissionId).Result;
var data = subscriberWithSubmission.GetDataString();
data.Should().Be(@"<user><name>John Doe</name></user>");
var attachments = subscriberWithSubmission.GetAttachmentsAsync().Result;
attachments.First().Filename.Should().Be("Test.pdf");
subscriberWithSubmission.RejectSubmissionAsync(
new Problems(Problems.ProblemTypeEnum.SchemaViolation, "")
}
[Test]
[Order(50)]
public void Sender_GetSubmissionState_AfterRejecting() {
// Act
var status = Sender.GetStatusForSubmissionAsync(_caseId, Settings.DestinationId).Result;
// Assert
status.Count.Should().BeGreaterThan(0);
status.ForEach(
s => Logger.LogInformation("Status {When} {Event}", s.EventTime, s.EventType));
var rejection = status.First(s => s.EventType == EventType.Reject);
rejection.Events?.RejectSubmissionEvent?.Problems.Should().NotBeNull();
rejection.Events?.RejectSubmissionEvent?.Problems?.ForEach(p => Logger.LogWarning(p.Detail));