/// <summary>
        /// Assign a Tag representing a group of Droplets to a Cloud Firewall
        /// </summary>
        public Task AddTags(string firewallId, Models.Requests.FirewallTags tags)
        {
            var parameters = new List <Parameter> {
                new Parameter("id", firewallId, ParameterType.UrlSegment)
            };

            return(_connection.ExecuteRaw("firewalls/{id}/tags", parameters, tags, Method.POST));
        }
        /// <summary>
        /// Remove a Tag representing a group of Droplets from a Cloud Firewall
        /// </summary>
        public Task RemoveTags(string firewallId, Models.Requests.FirewallTags tags)
        {
            var parameters = new List <Parameter> {
                new Parameter {
                    Name = "id", Value = firewallId, Type = ParameterType.UrlSegment
                }
            };

            return(_connection.ExecuteRaw("firewalls/{id}/tags", parameters, tags, Method.DELETE));
        }
        public void CorrectRequestForRemoveTags()
        {
            var factory = Substitute.For <IConnection>();
            var client  = new FirewallsClient(factory);
            var tags    = new Models.Requests.FirewallTags {
                Tags = new List <string> {
                    "awesome"
                }
            };

            client.RemoveTags("1", tags);
            var parameters = Arg.Is <List <Parameter> >(list => (string)list[0].Value == "1");

            factory.Received().ExecuteRaw("firewalls/{id}/tags", parameters, tags, Method.DELETE);
        }