public void CustomMethod_BackwardsCompability_430() { var ctxt = new TestDomainServices.NamedUpdates.CalculatorDomainContext (new Uri(TestURIs.RootURI, "TestDomainServices-NamedUpdates-CalculatorDomainService.svc")); LoadOperation lo = ctxt.Load(ctxt.GetEntitiesOldCodeGenQuery(), false); CalculatorValueOldCodeGen calc = null; SubmitOperation so = null; List<string> propChanged = new List<string>(); EnqueueConditional(() => lo.IsComplete); EnqueueCallback(delegate { calc = ctxt.CalculatorValuesOldCodeGen.First(); Assert.IsTrue(calc.CanAddTwice); Assert.IsFalse(calc.IsAddTwiceInvoked); calc.PropertyChanged += (sender, args) => propChanged.Add(args.PropertyName); calc.AddTwice(2.0m); Assert.IsFalse(calc.CanAddTwice, "Should not be able to invoke entity action multiple times"); Assert.IsTrue(calc.IsAddTwiceInvoked); Assert.AreEqual(1, propChanged.Count(p => p == "CanAddTwice"), "Property changes for CanAddTwice"); Assert.AreEqual(1, propChanged.Count(p => p == "IsAddTwiceInvoked"), "Property changes for CanAddTwice"); propChanged.Clear(); // Submit so server calculates 0 + 2*2 so = ctxt.SubmitChanges(TestHelperMethods.DefaultOperationAction, null); }); EnqueueConditional(() => so.IsComplete); EnqueueCallback(delegate { Assert.IsFalse(so.HasError); Assert.AreEqual(4.0m, calc.Value); Assert.AreEqual(1, propChanged.Count(p => p == "CanAddTwice"), "Property changes for CanAddTwice"); Assert.AreEqual(1, propChanged.Count(p => p == "IsAddTwiceInvoked"), "Property changes for CanAddTwice"); }); EnqueueTestComplete(); }
public void CustomMethod_MultipleInvocations_ShouldHappenInSameOrder() { var ctxt = new TestDomainServices.NamedUpdates.CalculatorDomainContext (new Uri(TestURIs.RootURI, "TestDomainServices-NamedUpdates-CalculatorDomainService.svc")); LoadOperation lo = ctxt.Load(ctxt.GetEntitiesQuery(), false); CalculatorValue calc = null; SubmitOperation so = null; EnqueueConditional(() => lo.IsComplete); EnqueueCallback(delegate { calc = ctxt.CalculatorValues.First(); Assert.IsTrue(calc.CanAdd); Assert.IsFalse(calc.IsAddInvoked); calc.Add(2.0m); Assert.IsTrue(calc.CanAdd, "Should be able to invoke entity action multiple times"); Assert.IsTrue(calc.IsAddInvoked); calc.Multiply(3.0m); Assert.IsTrue(calc.CanMultiply, "Should be able to invoke entity action multiple times"); Assert.IsTrue(calc.IsMultiplyInvoked); calc.Add(1.0m); calc.Multiply(5.0m); calc.Add(2.0m); // Submit so server calculates (((((0+2)*3)+1)*5)+2) = 37 so = ctxt.SubmitChanges(TestHelperMethods.DefaultOperationAction, null); }); EnqueueConditional(() => so.IsComplete); EnqueueCallback(delegate { Assert.IsFalse(so.HasError); Assert.AreEqual(37.0m, calc.Value); }); EnqueueTestComplete(); }