DeleteTag() public method

Delete a tag or tags from specified collection. Note: tags are case sensitive.
public DeleteTag ( ManageCollactionTagsRequest request ) : Task
request Syncano.Net.DataRequests.ManageCollactionTagsRequest Tags manage request.
return Task
        public async Task DeleteTag_MultipleTagVersion_WithEmptyTags_ThrowsException(CollectionSyncanoClient client)
        {
            //given
            var tagRequest = new ManageCollactionTagsRequest();
            tagRequest.ProjectId = TestData.ProjectId;
            tagRequest.CollectionId = TestData.CollectionId;
            tagRequest.Tags = new List<string>();

            try
            {
                //when
                await client.DeleteTag(tagRequest);
                throw new Exception("DeleteTag should throw an exception");
            }
            catch (Exception e)
            {
                //then
                e.ShouldBeType<ArgumentException>();
            }
        }
        public async Task DeleteTag_MultipleTagVersion_WithInvalidProjectId_ThrowsException(CollectionSyncanoClient client)
        {
            //given
            var tags = new[] { "abc", "def", "ghi" };
            var tagRequest = new ManageCollactionTagsRequest();
            tagRequest.ProjectId = "abcde";
            tagRequest.Tags = new List<string>(tags);
            tagRequest.CollectionId = TestData.CollectionId;

            try
            {
                //when
                await client.DeleteTag(tagRequest);
                throw new Exception("DeleteTag should throw an exception");
            }
            catch (Exception e)
            {
                //then
                e.ShouldBeType<SyncanoException>();
            }
        }
        public async Task DeleteTag_MultipleTagVersion_ByCollectionKey_WithWeightAndRemoveOther(CollectionSyncanoClient client)
        {
            //given
            string collectionName = "NewCollection test " + DateTime.Now.ToLongTimeString() + " " +
                                    DateTime.Now.ToShortDateString();
            const string collectionKey = "qwert";
            var tags = new[] { "abc", "def", "ghi" };

            var collection =
                await client.New(TestData.ProjectId, collectionName, collectionKey);
            await client.Activate(TestData.ProjectId, collection.Id, true);

            var tagRequest = new ManageCollactionTagsRequest();
            tagRequest.ProjectId = TestData.ProjectId;
            tagRequest.Tags = new List<string>(tags);
            tagRequest.CollectionKey = collectionKey;

            await client.AddTag(tagRequest, 10.84, true);

            //when
            var result = await client.DeleteTag(tagRequest);
            var request = new GetCollectionRequest();
            request.ProjectId = TestData.ProjectId;
            request.Tag = tags[0];
            var array = await client.Get(request);

            //then
            result.ShouldBeTrue();
            array.ShouldBeEmpty();

            //cleanup
            await client.Delete(TestData.ProjectId, collection.Id);
        }
        public async Task DeleteTag_SingleTagVersion_WithNullTag_ThrowsException(CollectionSyncanoClient client)
        {
            //given
            var request = new ManageCollactionTagsRequest();
            request.ProjectId = TestData.ProjectId;
            request.CollectionId = TestData.CollectionId;
            request.Tag = null;

            try
            {
                //when
                await client.DeleteTag(request);
                throw new Exception("DeleteTag should throw an exception");
            }
            catch (Exception e)
            {
                //then
                e.ShouldBeType<ArgumentException>();
            }
        }
        public async Task DeleteTag_SingleTagVersion_WithInvalidCollectionKey_ThrowsException(CollectionSyncanoClient client)
        {
            //given
            var request = new ManageCollactionTagsRequest();
            request.ProjectId = TestData.ProjectId;
            request.Tag = "tag";
            request.CollectionKey = "abcde";

            try
            {
                //when
                await client.DeleteTag(request);

                throw new Exception("DeleteTag should throw an exception");
            }
            catch (Exception e)
            {
                //then
                e.ShouldBeType<SyncanoException>();
            }
        }
        public async Task DeleteTag_SingleTagVersion_ByCollectionKey_WithWeightAndRemoveOther(CollectionSyncanoClient client)
        {
            //given
            string collectionName = "NewCollection test " + DateTime.Now.ToLongTimeString() + " " +
                                    DateTime.Now.ToShortDateString();
            string collectionKey = "qwert";
            string tag = "abcde";

            var collection =
                await client.New(TestData.ProjectId, collectionName, collectionKey);
            await client.Activate(TestData.ProjectId, collection.Id);

            var request = new ManageCollactionTagsRequest();
            request.ProjectId = TestData.ProjectId;
            request.Tag = tag;
            request.CollectionKey = collectionKey;

            await client.AddTag(request, 3.5, true);

            //when
            var result = await client.DeleteTag(request);

            //then
            result.ShouldBeTrue();

            //cleanup
            await client.Delete(TestData.ProjectId, collection.Id);
        }