public <T> Mono<CosmosItemResponse<T>> replaceItem(
            final T item, final String itemId, final PartitionKey partitionKey,
            final CosmosItemRequestOptions itemRequestOptions) {
        CosmosDbUtils.validateIfParameterIsNotEmpty(item, PARAM_ITEM);
        CosmosDbUtils.validateIfParameterIsNotEmpty(itemId, PARAM_ITEM_ID);
        CosmosDbUtils.validateIfParameterIsNotEmpty(partitionKey, PARAM_PARTITION_KEY);

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

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