public void TestApplyOperation()
        {
            IParseFieldOperation op1 = new ParseIncrementOperation(7);
            IParseFieldOperation op2 = new ParseSetOperation("legendia");
            IParseFieldOperation op3 = new ParseSetOperation("vesperia");
            Dictionary <string, IParseFieldOperation> operations = new Dictionary <string, IParseFieldOperation>()
            {
                { "exist", op1 },
                { "missing", op2 },
                { "change", op3 }
            };

            IObjectState state = new MutableObjectState
            {
                ServerData = new Dictionary <string, object>()
                {
                    { "exist", 2 },
                    { "change", "teletubies" }
                }
            };

            Assert.AreEqual(2, state["exist"]);
            Assert.AreEqual("teletubies", state["change"]);

            state = state.MutatedClone(mutableClone => mutableClone.Apply(operations));

            Assert.AreEqual(3, state.Count());
            Assert.AreEqual(9, state["exist"]);
            Assert.AreEqual("legendia", state["missing"]);
            Assert.AreEqual("vesperia", state["change"]);
        }
Esempio n. 2
0
        public void TestEncodeParseFieldOperation()
        {
            var incOps = new ParseIncrementOperation(1);
            IDictionary <string, object> value = ParseEncoderTestClass.Instance.Encode(incOps) as IDictionary <string, object>;

            Assert.AreEqual("Increment", value["__op"]);
            Assert.AreEqual(1, value["amount"]);
            // Other operations are tested in FieldOperationTests
        }