public async Task GivenNotExistingTagPath_WhenDeleteExtendedQueryTagIsInvoked_ThenShouldPassException()
        {
            string path = DicomTag.DeviceSerialNumber.GetPath();

            _extendedQueryTagStore
            .GetExtendedQueryTagAsync(path, default)
            .Returns(Task.FromException <ExtendedQueryTagStoreJoinEntry>(new ExtendedQueryTagNotFoundException("Tag doesn't exist")));

            await Assert.ThrowsAsync <ExtendedQueryTagNotFoundException>(() => _extendedQueryTagService.DeleteExtendedQueryTagAsync(path));

            await _extendedQueryTagStore
            .Received(1)
            .GetExtendedQueryTagAsync(path, default);
        }
        public async Task GivenRequestForMultipleTags_WhenNoTagsAreStored_ThenReturnEmptyResult()
        {
            _extendedQueryTagStore.GetExtendedQueryTagsAsync(7, 0).Returns(Array.Empty <ExtendedQueryTagStoreJoinEntry>());
            GetExtendedQueryTagsResponse response = await _getExtendedQueryTagsService.GetExtendedQueryTagsAsync(7, 0);

            await _extendedQueryTagStore.Received(1).GetExtendedQueryTagsAsync(7, 0);

            _urlResolver.DidNotReceiveWithAnyArgs().ResolveQueryTagErrorsUri(default);
        public async Task GivenValidInput_WhenGetExtendedQueryTagsIsCalledMultipleTimes_ThenExtendedQueryTagStoreIsCalledOnce()
        {
            _extendedQueryTagStore.GetExtendedQueryTagsAsync(null, Arg.Any <CancellationToken>())
            .Returns(Array.Empty <ExtendedQueryTagStoreEntry>());

            await _queryTagService.GetQueryTagsAsync();

            await _queryTagService.GetQueryTagsAsync();

            await _extendedQueryTagStore.Received(1).GetExtendedQueryTagsAsync(null, Arg.Any <CancellationToken>());
        }