// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Collections.Generic; /// ///System.Predicate.BeginInvoke [v-yaduoj] /// public class PredicateBeginInvoke { private const int c_CRITERIA = 80; public static int Main() { PredicateBeginInvoke testObj = new PredicateBeginInvoke(); TestLibrary.TestFramework.BeginTestCase("for method of Predicate.BeginInvoke"); if (testObj.RunTests()) { TestLibrary.TestFramework.EndTestCase(); TestLibrary.TestFramework.LogInformation("PASS"); return 100; } else { TestLibrary.TestFramework.EndTestCase(); TestLibrary.TestFramework.LogInformation("FAIL"); return 0; } } public bool RunTests() { bool retVal = true; TestLibrary.TestFramework.LogInformation("[Negative]"); retVal = NegTest1() && retVal; return retVal; } #region Negative tests public bool NegTest1() { bool retVal = true; int count; bool actualValue; bool expectedValue; count = 20; expectedValue = count >= c_CRITERIA; TestLibrary.TestFramework.BeginScenario("NegTest1: call the method Predicate.BeginInvoke asynchronously"); try { MyClass myClass = new MyClass(count); Predicate selector = myClass.IsGreatEnough; IAsyncResult asyncResult = selector.BeginInvoke(c_CRITERIA, null, null); actualValue = selector.EndInvoke(asyncResult); retVal = false; TestLibrary.TestFramework.LogError("003", "NotSupportedException expected"); } catch (NotSupportedException) { //expected } catch (Exception e) { TestLibrary.TestFramework.LogError("002", "Unexpected exception:" + e); retVal = false; } return retVal; } #endregion } class MyClass { private int m_count; public MyClass(int count) { m_count = count; } public int Count { get { return m_count; } } public bool IsGreatEnough(int criteria) { return m_count >= criteria; } }