public void ICanSerializeAndDeserializeAHttpUserChangeRequest()
        {
            string username = "******";
            string password = GetRandomValidPassword();
            var    payload  = PayloadConverter.SerializeConnectivityRequest(UserChangeRequestOperationType.Enable, username, password, DateTimeOffset.MinValue);

            var serverConverter = new ClusterProvisioningServerPayloadConverter();
            var request         = serverConverter.DeserializeChangeRequest <HttpUserChangeRequest>(payload);

            Assert.AreEqual(username, request.Username, "Round trip serialize/deserialize enable http does not match username");
            Assert.AreEqual(password, request.Password, "Round trip serialize/deserialize enable http does not match password");
            Assert.AreEqual(UserChangeOperationType.Enable, request.Operation, "Round trip serialize/deserialize enable http does not match operation requested");

            payload = PayloadConverter.SerializeConnectivityRequest(UserChangeRequestOperationType.Disable, username, password, DateTimeOffset.MinValue);

            request = serverConverter.DeserializeChangeRequest <HttpUserChangeRequest>(payload);

            Assert.AreEqual(UserChangeOperationType.Disable, request.Operation, "Round trip serialize/deserialize disabl http does not match operation requested");
            // Technically per spec these shouldn't matter for disable... but the serializer should do it's jobDetails correctly.
            Assert.AreEqual(username, request.Username, "Round trip serialize/deserialize disable http does not match username");
            Assert.AreEqual(password, request.Password, "Round trip serialize/deserialize disable http does not match password");
        }