public async Task When_ResourceCreated_Then_Attributes_Populated() { using var t = SystemTime.PauseForThread(); // Arrange var executor = TestApiOperationExecutor.CreateHttp(o => o .WithOperation <CreationOperation>() .WithOperation <SelfQuery>() .AddResourceEvents <NullResourceEventRepository>()); // Act var context = executor.HttpContextFor(new CreationOperation { IdToCreate = "1234" }); var result = await executor.ExecuteAsync(context); // Assert var @event = result.ShouldBeContent <CreatedResourceEvent>(); @event.Created.UtcDateTime.Should().BeCloseTo(t.UtcNow); @event.Object.Should().Be("event"); @event.EventId.Should().Be("awesome.created"); @event.ChangeType.Should().Be(ResourceEventChangeType.Created); @event.ResourceObject.Should().Be("awesome"); @event.Href.Should().Be("https://api.blueprint-testing.com/api/resources/1234"); }
public async Task When_ResourceDeleted_ApiResource_Returned_With_Then_Href_Populated() { // Arrange using var t = SystemTime.PauseForThread(); var executor = TestApiOperationExecutor .CreateStandalone(o => o .Http() .AddHateoasLinks() .AddResourceEvents <NullResourceEventRepository>() .WithOperation <ResourceSelfOperation>() .WithOperation <ResourceDeletionOperation>() .WithOperation <ResourceLinkWithoutIdOperation>() .WithOperation <ResourceLinkWithIdOperation>() ); // Act var result = await executor.ExecuteAsync(new ResourceDeletionOperation { Id = "87457", }); // Assert var okResult = result.ShouldBeOperationResultType <OkResult>(); var @event = okResult.Content.Should().BeOfType <ResourceDeleted <ResourceToReturn> >().Subject; @event.Created.UtcDateTime.Should().BeCloseTo(t.UtcNow); @event.Object.Should().Be("event"); @event.EventId.Should().Be("toReturn.deleted"); @event.ChangeType.Should().Be(ResourceEventChangeType.Deleted); @event.ResourceObject.Should().Be("toReturn"); @event.Href.Should().Be("https://api.blueprint-testing.com/api/resources/87457"); }
public async Task When_ResourceCreated_Then_Attributes_Populated() { using (var t = SystemTime.PauseForThread()) { // Arrange var executor = TestApiOperationExecutor.CreateHttp(o => o .WithOperation <CreationOperation>() .WithOperation <SelfQuery>() .AddResourceEvents <NullResourceEventRepository>() .AddAuthentication(a => a.UseContextLoader <TestUserAuthorisationContextFactory>()) .AddAuthorisation()); // Act var context = executor.HttpContextFor(new CreationOperation { IdToCreate = "1234" }) .WithAuth(new Claim("sub", "User8547")); var result = await executor.ExecuteAsync(context); // Assert var @event = result.ShouldBeContent <CreatedResourceEvent>(); @event.Created.UtcDateTime.Should().BeCloseTo(t.UtcNow); @event.Object.Should().Be("event"); @event.EventId.Should().Be("awesome.created"); @event.ChangeType.Should().Be(ResourceEventChangeType.Created); @event.ResourceObject.Should().Be("awesome"); } }
public void When_DateTime_Is_Now_Then_Valid() { // Arrange using var t = SystemTime.PauseForThread(); var dateTime = DateTime.UtcNow; // Act var isNotInPast = !dateTime.IsInPast(TemporalCheck.DateTime); // Assert Assert.IsTrue(isNotInPast); }
public void When_DateTime_Is_Now_Then_Invalid() { using var t = SystemTime.PauseForThread(); // Arrange var dateTime = DateTime.UtcNow; // Act var isInPast = dateTime.IsInPast(TemporalCheck.DateTime); // Assert Assert.IsFalse(isInPast); }
public async Task Can_serialise_to_JSON() { // Arrange using var t = SystemTime.PauseForThread(); t.SetUtcNow(new DateTime(2021, 07, 07, 0, 0, 0, DateTimeKind.Utc)); var resourceEvent = new ResourceEvent <MyResource>( ResourceEventChangeType.Created, "createdInTest", new MyResource("test-1234", "My named resource")) { Metadata = new Dictionary <string, object> { ["stringKey"] = "value1", ["numberKey"] = 1, ["booleanKey"] = true, }, SecureData = new Dictionary <string, object> { ["key1"] = "value1", }, ChangedValues = new Dictionary <string, object> { ["key1"] = "changed-value1", }, CorrelationId = "my-correlation-id", Href = "https://www.my-api.com/my-resource/test-1234" }; var prettyPrintOptions = new JsonSerializerOptions(JsonSerializerOptions) { WriteIndented = true }; // Act var asJson = JsonSerializer.Serialize(resourceEvent, prettyPrintOptions); // Assert await Verifier.Verify(asJson); }