public <T> Mono<CosmosItemResponse<T>> readItem(
            final String itemId, final PartitionKey partitionKey, final CosmosItemRequestOptions itemRequestOptions,
            final Class<T> itemType) {
        CosmosDbUtils.validateIfParameterIsNotEmpty(itemId, PARAM_ITEM_ID);
        CosmosDbUtils.validateIfParameterIsNotEmpty(partitionKey, PARAM_PARTITION_KEY);
        CosmosDbUtils.validateIfParameterIsNotEmpty(itemType, PARAM_ITEM_TYPE);

        return applyToContainer(container -> container.readItem(itemId, partitionKey, itemRequestOptions, itemType));
    }
@Test
    void readItem() {
        final CosmosDbContainerOperations operations
                = new CosmosDbContainerOperations(Mono.just(mock(CosmosAsyncContainer.class)));

        CosmosDbTestUtils.assertIllegalArgumentException(() -> operations.readItem(null, null, null, null));
        CosmosDbTestUtils.assertIllegalArgumentException(() -> operations.readItem("test", null, null, null));
    }