@Override
    public Completable writeDescriptor(@NonNull final BluetoothGattDescriptor descriptor, @NonNull final byte[] data) {
        Map<UUID, RxBleDescriptorWriteCallback> descriptorCallbacks = descriptorWriteCallbacks
                .get(descriptor.getCharacteristic().getUuid());
        if (descriptorCallbacks != null) {
            final RxBleDescriptorWriteCallback writeCallback = descriptorCallbacks.get(descriptor.getUuid());
            if (writeCallback != null) {
                // wrap descriptor in single so exceptions from writeCallback are handled for us
                return Single.just(descriptor).flatMapCompletable(new Function<BluetoothGattDescriptor, Completable>() {
                    @Override
                    public Completable apply(final BluetoothGattDescriptor descriptor) throws Exception {
                        final CompletableSubject subj = CompletableSubject.create();
                        writeCallback.handle(deviceMock, descriptor, data, new RxBleGattWriteResultMock() {
                            @Override
                            public void success() {
                                descriptor.setValue(data);
                                subj.onComplete();
                            }

                            @Override
                            public void failure(int status) {
                                subj.onError(
                                        new BleGattDescriptorException(null, descriptor, status, BleGattOperationType.DESCRIPTOR_WRITE)
                                );
                            }

                            @Override
                            public void disconnect(int status) {
                                subj.onError(handleDisconnection(status));
                            }
                        });
                        return subj;
                    }
                });
            }
        }
        return Completable.fromAction(new Action() {
            @Override
            public void run() throws Exception {
                descriptor.setValue(data);
            }
        });
    }
Value used to disable notifications or indicatinos
mockrxandroidble/src/main/java/com/polidea/rxandroidble2/mockrxandroidble/RxBleConnectionMock.java