diff --git a/Builds/VisualStudio2015/RippleD.vcxproj b/Builds/VisualStudio2015/RippleD.vcxproj
index 34a50db41f..c60aa5f23b 100644
--- a/Builds/VisualStudio2015/RippleD.vcxproj
+++ b/Builds/VisualStudio2015/RippleD.vcxproj
@@ -3603,6 +3603,10 @@
True
True
+
+ True
+ True
+
True
True
@@ -3663,6 +3667,8 @@
+
+
diff --git a/Builds/VisualStudio2015/RippleD.vcxproj.filters b/Builds/VisualStudio2015/RippleD.vcxproj.filters
index 8c90529468..af26d08d34 100644
--- a/Builds/VisualStudio2015/RippleD.vcxproj.filters
+++ b/Builds/VisualStudio2015/RippleD.vcxproj.filters
@@ -4065,6 +4065,9 @@
ripple\test\jtx\impl
+
+ ripple\test\jtx\impl
+
ripple\test\jtx\impl
@@ -4125,6 +4128,9 @@
ripple\test\jtx
+
+ ripple\test\jtx
+
ripple\test\jtx
diff --git a/src/ripple/test/jtx.h b/src/ripple/test/jtx.h
index c30f0c8fd0..24766929cb 100644
--- a/src/ripple/test/jtx.h
+++ b/src/ripple/test/jtx.h
@@ -41,6 +41,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/src/ripple/test/jtx/impl/quality.cpp b/src/ripple/test/jtx/impl/quality.cpp
new file mode 100644
index 0000000000..3d0e634a28
--- /dev/null
+++ b/src/ripple/test/jtx/impl/quality.cpp
@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+/*
+ This file is part of rippled: https://github.com/ripple/rippled
+ Copyright (c) 2016 Ripple Labs Inc.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+//==============================================================================
+
+#include
+#include
+#include
+#include
+
+namespace ripple {
+namespace test {
+namespace jtx {
+
+qualityInPercent::qualityInPercent (double percent)
+: qIn_ (static_cast((percent / 100) * QUALITY_ONE))
+{
+ assert (percent <= 400 && percent >= 0);
+}
+
+qualityOutPercent::qualityOutPercent (double percent)
+: qOut_ (static_cast((percent / 100) * QUALITY_ONE))
+{
+ assert (percent <= 400 && percent >= 0);
+}
+
+static void
+insertQualityIntoJtx (SField const& field, std::uint32_t value, JTx& jt)
+{
+ jt.jv[field.jsonName] = value;
+}
+
+void
+qualityIn::operator()(Env&, JTx& jt) const
+{
+ insertQualityIntoJtx (sfQualityIn, qIn_, jt);
+}
+
+void
+qualityInPercent::operator()(Env&, JTx& jt) const
+{
+ insertQualityIntoJtx (sfQualityIn, qIn_, jt);
+}
+
+void
+qualityOut::operator()(Env&, JTx& jt) const
+{
+ insertQualityIntoJtx (sfQualityOut, qOut_, jt);
+}
+
+void
+qualityOutPercent::operator()(Env&, JTx& jt) const
+{
+ insertQualityIntoJtx (sfQualityOut, qOut_, jt);
+}
+
+} // jtx
+} // test
+} // ripple
diff --git a/src/ripple/test/jtx/quality.h b/src/ripple/test/jtx/quality.h
new file mode 100644
index 0000000000..562e5933c8
--- /dev/null
+++ b/src/ripple/test/jtx/quality.h
@@ -0,0 +1,91 @@
+//------------------------------------------------------------------------------
+/*
+ This file is part of rippled: https://github.com/ripple/rippled
+ Copyright (c) 2016 Ripple Labs Inc.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+//==============================================================================
+
+#ifndef RIPPLE_TEST_JTX_QUALITY_H_INCLUDED
+#define RIPPLE_TEST_JTX_QUALITY_H_INCLUDED
+
+#include
+
+namespace ripple {
+namespace test {
+namespace jtx {
+
+/** Sets the literal QualityIn on a trust JTx. */
+class qualityIn
+{
+private:
+ std::uint32_t qIn_;
+
+public:
+ explicit qualityIn (std::uint32_t qIn)
+ : qIn_ (qIn)
+ {
+ }
+
+ void
+ operator()(Env&, JTx& jtx) const;
+};
+
+/** Sets the QualityIn on a trust JTx as a percentage. */
+class qualityInPercent
+{
+private:
+ std::uint32_t qIn_;
+
+public:
+ explicit qualityInPercent (double percent);
+
+ void
+ operator()(Env&, JTx& jtx) const;
+};
+
+/** Sets the literal QualityOut on a trust JTx. */
+class qualityOut
+{
+private:
+ std::uint32_t qOut_;
+
+public:
+ explicit qualityOut (std::uint32_t qOut)
+ : qOut_ (qOut)
+ {
+ }
+
+ void
+ operator()(Env&, JTx& jtx) const;
+};
+
+/** Sets the QualityOut on a trust JTx as a percentage. */
+class qualityOutPercent
+{
+private:
+ std::uint32_t qOut_;
+
+public:
+ explicit qualityOutPercent (double percent);
+
+ void
+ operator()(Env&, JTx& jtx) const;
+};
+
+} // jtx
+} // test
+} // ripple
+
+#endif
diff --git a/src/ripple/unity/test.cpp b/src/ripple/unity/test.cpp
index 630a51f319..9e91807bbe 100644
--- a/src/ripple/unity/test.cpp
+++ b/src/ripple/unity/test.cpp
@@ -34,6 +34,7 @@
#include
#include
#include
+#include
#include
#include
#include