public SenderDomain AddSenderDomain(SenderDomain newDomain, out HttpStatusCode status, out string statusMessage)
        {
            RestClient restClient = createClient();

            RestRequest restRequest = new RestRequest
            {
                Resource = "data/senderDomain",
                RequestFormat = DataFormat.Json,
                Method = Method.POST
            };
            // we handle our own serialization instead of calling AddBody
            JsonSerializerSettings serSettings = new JsonSerializerSettings();
            serSettings.DefaultValueHandling = DefaultValueHandling.Ignore;
            serSettings.NullValueHandling = NullValueHandling.Ignore;

            string serialized = JsonConvert.SerializeObject(newDomain, serSettings);
            restRequest.AddParameter("application/json", serialized, ParameterType.RequestBody);

            IRestResponse restResponse = restClient.Execute(restRequest);
            status = restResponse.StatusCode;
            if (status != HttpStatusCode.OK)
            {
                statusMessage = restResponse.Content;
                return null;
            }
            else
            {
                statusMessage = null;
            }

            serialized = restResponse.Content;
            SenderDomain obj = JsonConvert.DeserializeObject<SenderDomain>(serialized);
            return obj;
        }
        public void SenderDomainCRU()
        {
            BrickStreetConnect brickst = makeClient();

            HttpStatusCode status;
            String statusMessage;

            SenderDomain s1 = new SenderDomain();
            s1.Name = "example.com";
            s1.SigningAlg = 0;
            s1.DefaultDomain = false;

            SenderDomain s2 = brickst.AddSenderDomain(s1, out status, out statusMessage);

            Assert.AreEqual(HttpStatusCode.OK, status);
            Assert.IsNotNull(s2);
            Assert.IsTrue(s2.Id.HasValue);
            Assert.AreEqual(s2.Name, s1.Name);
            Assert.AreEqual(s2.SigningAlg, s1.SigningAlg);
            Assert.AreEqual(s2.DefaultDomain, s1.DefaultDomain);

            s2.Name = "example2.com";

            SenderDomain s3 = brickst.UpdateSenderDomain(s2, out status, out statusMessage);

            Assert.AreEqual(HttpStatusCode.OK, status);
            Assert.IsNotNull(s3);
            Assert.IsTrue(s3.Id.HasValue);
            Assert.AreEqual(s3.Id.Value, s2.Id.Value);
            Assert.AreEqual(s3.Name, s2.Name);
            Assert.AreEqual(s3.SigningAlg, s2.SigningAlg);
            Assert.AreEqual(s3.DefaultDomain, s2.DefaultDomain);
        }