コード例 #1
0
        public async Task RenderOrderTemplateAsyncAsyncRendersFromTheTemplate()
        {
            // Arrange
            var metadata = new OrderTemplateMetadata
            {
                Sku              = "ABC",
                LineItemCount    = 4,
                AdditionalSheets = 3,
                AssetUrl         = "www.google.com"
            };

            var template = "Sku: @Model.Sku | LineItemCount: @Model.LineItemCount | TotalSheets: @Model.TotalSheets | AdditionalSheets: @Model.AdditionalSheets | AssetUrl: @Model.AssetUrl";
            var expected = template
                           .Replace("@Model.Sku", metadata.Sku)
                           .Replace("@Model.LineItemCount", metadata.LineItemCount.ToString())
                           .Replace("@Model.TotalSheets", metadata.TotalSheets.ToString())
                           .Replace("@Model.AdditionalSheets", metadata.AdditionalSheets.ToString())
                           .Replace("@Model.AssetUrl", metadata.AssetUrl);

            var mockStorage = new Mock <ISkuMetadataStorage>();

            mockStorage.Setup(storage => storage.TryRetrieveSkuMetadataAsync(It.IsAny <string>()))
            .ReturnsAsync((true, template));

            using (var processor = new SkuMetadataProcessor(new SkuMetadataProcessorConfiguration(), mockStorage.Object))
            {
                // Act
                var result = await processor.RenderOrderTemplateAsync(metadata);

                // Assert
                result.Should().NotBeNull("because a result should have been returned");
                result.Should().Be(expected, "because the template should have been randered");
            }
        }
コード例 #2
0
 public void RenderOrderTemplateAsyncValidatesTheMetadata()
 {
     using (var processor = new SkuMetadataProcessor(new SkuMetadataProcessorConfiguration(), Mock.Of <ISkuMetadataStorage>()))
     {
         Action actionUnderTest = () => processor.RenderOrderTemplateAsync(null).GetAwaiter().GetResult();
         actionUnderTest.ShouldThrow <ArgumentNullException>("because the metadata is required");
     }
 }
コード例 #3
0
        public void RenderOrderTemplateAsyncAsyncThrowsForMissingStorageMetadata()
        {
            var mockStorage = new Mock <ISkuMetadataStorage>();
            var metadata    = new OrderTemplateMetadata {
                Sku = "ABC"
            };

            mockStorage.Setup(storage => storage.TryRetrieveSkuMetadataAsync(It.IsAny <string>()))
            .ReturnsAsync((false, null))
            .Verifiable("The SKU metadata should have been requested from storage");

            using (var processor = new SkuMetadataProcessor(new SkuMetadataProcessorConfiguration(), mockStorage.Object))
            {
                Action actionUnderTest = () => processor.RenderOrderTemplateAsync(metadata).GetAwaiter().GetResult();
                actionUnderTest.ShouldThrow <MissingDependencyException>("because the metadata in storage must be found");
            }

            mockStorage.VerifyAll();
        }