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"]); }
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 }