internal async Task ThenTheOrderItemEstimationPeriodIsSetTo(string estimationPeriodName)
            {
                TimeUnit?expectedEstimationPeriod = null;

                if (!string.IsNullOrWhiteSpace(estimationPeriodName))
                {
                    expectedEstimationPeriod = Enum.Parse <TimeUnit>(estimationPeriodName, true);
                }

                var orderItem = await OrderItemEntity.FetchByKey(settings.ConnectionString, OrderId, catalogueItemId);

                orderItem.EstimationPeriod.Should().Be(expectedEstimationPeriod);
            }
            internal async Task ThenTheExpectedOrderItemIsCreated()
            {
                var orderItem = await OrderItemEntity.FetchByKey(
                    settings.ConnectionString,
                    OrderId,
                    catalogueItemId);

                var expectedOrderItemEntity = requestInfo.GetExpectedOrderItemEntity(OrderId, catalogueItemId);

                EquivalencyAssertionOptions <OrderItemEntity> AssertionOptions(EquivalencyAssertionOptions <OrderItemEntity> o)
                {
                    var options = o.Excluding(i => i.Created).Excluding(i => i.LastUpdated);

                    // Estimation period is tested specifically in its own scenario
                    return(requestInfo.CatalogueItemType == CatalogueItemType.AssociatedService
                        ? options.Excluding(i => i.EstimationPeriod)
                        : options);
                }

                orderItem.Should().BeEquivalentTo(expectedOrderItemEntity, AssertionOptions);
            }