public void ConvertSDKToAPI()
        {
            FieldStyle fieldStyle   = FieldStyle.UNBOUND_CUSTOM_FIELD;
            string     fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();

            Assert.AreEqual(fieldSubtype, FieldStyle.UNBOUND_CUSTOM_FIELD.getApiValue());

            fieldStyle   = FieldStyle.UNBOUND_TEXT_FIELD;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.UNBOUND_TEXT_FIELD.getApiValue());

            fieldStyle   = FieldStyle.LABEL;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.LABEL.getApiValue());

            fieldStyle   = FieldStyle.UNBOUND_CHECK_BOX;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.UNBOUND_CHECK_BOX.getApiValue());

            fieldStyle   = FieldStyle.UNBOUND_RADIO_BUTTON;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.UNBOUND_RADIO_BUTTON.getApiValue());

            fieldStyle   = FieldStyle.DROP_LIST;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.DROP_LIST.getApiValue());

            fieldStyle   = FieldStyle.TEXT_AREA;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.TEXT_AREA.getApiValue());

            fieldStyle   = FieldStyle.BOUND_QRCODE;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.BOUND_QRCODE.getApiValue());

            fieldStyle   = FieldStyle.SEAL;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.SEAL.getApiValue());

            fieldStyle   = FieldStyle.BOUND_DATE;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.LABEL.getApiValue());

            fieldStyle   = FieldStyle.BOUND_NAME;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.LABEL.getApiValue());

            fieldStyle   = FieldStyle.BOUND_TITLE;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.LABEL.getApiValue());

            fieldStyle   = FieldStyle.BOUND_COMPANY;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldStyle.LABEL.getApiValue());

            fieldStyle   = FieldStyle.valueOf("unknownvalue");
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual("unknownvalue", fieldSubtype);
        }
        public void ConvertAPIToSDK()
        {
            string BINDING_DATE    = "{approval.signed}";
            string BINDING_TITLE   = "{signer.title}";
            string BINDING_NAME    = "{signer.name}";
            string BINDING_COMPANY = "{signer.company}";

            // Where the conversion is based on subtype.
            string       binding;
            FieldSubtype fieldSubtype;
            FieldStyle   fieldStyle;

            fieldSubtype = FieldSubtype.CUSTOMFIELD;
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.UNBOUND_CUSTOM_FIELD);

            fieldSubtype = FieldSubtype.TEXTFIELD;
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.UNBOUND_TEXT_FIELD);

            fieldSubtype = FieldSubtype.CHECKBOX;
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.UNBOUND_CHECK_BOX);

            fieldSubtype = FieldSubtype.RADIO;
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.UNBOUND_RADIO_BUTTON);

            fieldSubtype = FieldSubtype.QRCODE;
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_QRCODE);

            // Where the conversion is based on binding.
            fieldSubtype = new FieldSubtype();
            binding      = BINDING_DATE;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_DATE);

            fieldSubtype = new FieldSubtype();
            binding      = BINDING_TITLE;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_TITLE);

            fieldSubtype = new FieldSubtype();
            binding      = BINDING_NAME;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_NAME);

            fieldSubtype = new FieldSubtype();
            binding      = BINDING_COMPANY;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_COMPANY);
        }
        public void ConvertSDKToAPI()
        {
            FieldStyle   fieldStyle   = FieldStyle.UNBOUND_CUSTOM_FIELD;
            FieldSubtype fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();

            Assert.AreEqual(fieldSubtype, FieldSubtype.CUSTOMFIELD);

            fieldStyle   = FieldStyle.UNBOUND_TEXT_FIELD;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.TEXTFIELD);

            fieldStyle   = FieldStyle.LABEL;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.LABEL);

            fieldStyle   = FieldStyle.UNBOUND_CHECK_BOX;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.CHECKBOX);

            fieldStyle   = FieldStyle.UNBOUND_RADIO_BUTTON;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.RADIO);

            fieldStyle   = FieldStyle.BOUND_QRCODE;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.QRCODE);

            fieldStyle   = FieldStyle.BOUND_DATE;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.LABEL);

            fieldStyle   = FieldStyle.BOUND_NAME;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.LABEL);

            fieldStyle   = FieldStyle.BOUND_TITLE;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.LABEL);

            fieldStyle   = FieldStyle.BOUND_COMPANY;
            fieldSubtype = new FieldStyleAndSubTypeConverter(fieldStyle).ToAPIFieldSubtype();
            Assert.AreEqual(fieldSubtype, FieldSubtype.LABEL);
        }
        public void ConvertAPIToSDK()
        {
            string BINDING_DATE    = "{approval.signed}";
            string BINDING_TITLE   = "{signer.title}";
            string BINDING_NAME    = "{signer.name}";
            string BINDING_COMPANY = "{signer.company}";

            // Where the conversion is based on subtype.
            string     binding;
            string     fieldSubtype;
            FieldStyle fieldStyle;

            fieldSubtype = FieldStyle.UNBOUND_CUSTOM_FIELD.getApiValue();
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.UNBOUND_CUSTOM_FIELD);

            fieldSubtype = FieldStyle.UNBOUND_TEXT_FIELD.getApiValue();
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.UNBOUND_TEXT_FIELD);

            fieldSubtype = FieldStyle.UNBOUND_CHECK_BOX.getApiValue();
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.UNBOUND_CHECK_BOX);

            fieldSubtype = FieldStyle.UNBOUND_RADIO_BUTTON.getApiValue();
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.UNBOUND_RADIO_BUTTON);

            fieldSubtype = FieldStyle.TEXT_AREA.getApiValue();
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.TEXT_AREA);

            fieldSubtype = FieldStyle.DROP_LIST.getApiValue();
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.DROP_LIST);

            fieldSubtype = FieldStyle.BOUND_QRCODE.getApiValue();
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_QRCODE);

            fieldSubtype = FieldStyle.SEAL.getApiValue();
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.SEAL);

            fieldSubtype = "THIS_IS_A_NEW_FIELD_ADDED";
            binding      = null;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle.getApiValue(), "THIS_IS_A_NEW_FIELD_ADDED");

            // Where the conversion is based on binding.
            fieldSubtype = "";
            binding      = BINDING_DATE;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_DATE);

            fieldSubtype = "";
            binding      = BINDING_TITLE;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_TITLE);

            fieldSubtype = "";
            binding      = BINDING_NAME;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_NAME);

            fieldSubtype = "";
            binding      = BINDING_COMPANY;
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle, FieldStyle.BOUND_COMPANY);

            fieldSubtype = "";
            binding      = "";
            fieldStyle   = new FieldStyleAndSubTypeConverter(fieldSubtype, binding).ToSDKFieldStyle();
            Assert.AreEqual(fieldStyle.getApiValue(), FieldStyle.valueOf("").getApiValue());
        }