Пример #1
0
        /// <inheritdoc />
        public override async Task <CustomResourceResponse <TLambdaOutput> > InvokeLambda(
            Stream inputStream,
            CancellationToken cancellationToken = default
            )
        {
            cancellationToken.ThrowIfCancellationRequested();

            CustomResourceResponse <TLambdaOutput> response;
            var input = await DeserializeInput(inputStream, cancellationToken);

            try
            {
                var request = GetFullRequest(input);
                Validate(request);

                var requestType = GetRequestType(request);
                var data        = await(requestType switch
                {
                    CustomResourceRequestType.Create => Lambda.Create(request, cancellationToken),
                    CustomResourceRequestType.Update => Lambda.Update(request, cancellationToken),
                    CustomResourceRequestType.Delete => Lambda.Delete(request, cancellationToken),
                    _ => throw new Exception($"Unknown RequestType '{request.RequestType}'"),
                });

                response = new CustomResourceResponse <TLambdaOutput>
                {
                    Status             = CustomResourceResponseStatus.Success,
                    RequestId          = request.RequestId,
                    StackId            = request.StackId,
                    LogicalResourceId  = request.LogicalResourceId,
                    PhysicalResourceId = data.Id,
                    Data = data,
                };
            }
Пример #2
0
        public void RunTest()
        {
            var lambda1 = Lambda <object, bool> .Create(() => true);

            var lambda2 = Lambda <object, bool> .Create(() => false);

            Assert.IsTrue(lambda1.Run(new object()));
            Assert.IsFalse(lambda2.Run(new object()));
        }
Пример #3
0
        public void BasicTest()
        {
            var runner = NaryConditionalRunner <int, bool> .Create("");

            var app1 = Lambda <int, bool> .Create(() => true);

            var app2 = Lambda <int, bool> .Create(() => false);

            runner.Add(0, app1).Add(1, app2);
            Assert.IsTrue(runner.Run(0));
            Assert.IsFalse(runner.Run(1));
        }
Пример #4
0
 private void TestForLambda_Load(object sender, EventArgs e)
 {
     Lambda
     .Create()
     .Try(() => MessageBox.Show("1"))
     .Try(() => MessageBox.Show((4 / 1).ToString()))
     .Try(() => Convert.ToInt32("test"))
     .Catch((ex) => MessageBox.Show("3"), 2)
     .Finally(() => MessageBox.Show("9"))
     .Finally(() => MessageBox.Show("91"), 1)
     .Finally(() => MessageBox.Show("10"), 1)
     .Run();
 }
Пример #5
0
        public void CompletedAppsTest()
        {
            var runner1 = LinearRunner <object, bool, int> .Create("", b => true,
                                                                   (b, i) => (b ? 1 : 0) + i, () => 0);

            var runner2 = LinearRunner <object, bool, int> .Create("", b => true,
                                                                   (b, i) => (b ? 1 : 0) + i, () => 0);

            var app1 = Lambda <object, bool> .Create(() => true);

            var app2 = Lambda <object, bool> .Create(() => false);

            runner1.Add(app1);
            runner1.Add(app2);
            runner1.Add(app1).Add(app2).Add(app2);
            runner2.Add(app1).Add(app1);
            Assert.AreEqual(2, runner1.Run(new object()));
            Assert.AreEqual(2, runner2.Run(new object()));
        }
Пример #6
0
        public void BasicTest()
        {
            var runner1 =
                LinearRunner <object, bool, bool> .Create("", b => b,
                                                          (b1, b2) => b1 && b2, () => true);

            var runner2 = LinearRunner <object, bool, bool> .Create("", b => b,
                                                                    (b1, b2) => b1 && b2, () => true);

            var app1 = Lambda <object, bool> .Create(() => true);

            var app2 = Lambda <object, bool> .Create(() => true);

            var app3 = Lambda <object, bool> .Create(() => false);

            runner1.Add(app1);
            runner1.Add(app2);
            runner2.Add(app1);
            runner2.Add(app3);
            runner2.Add(app3);
            Assert.IsTrue(runner1.Run(new object()));
            Assert.IsFalse(runner2.Run(new object()));
        }
Пример #7
0
        public void NameTest()
        {
            var lambda = Lambda <object, bool> .Create(() => true);

            Assert.AreEqual(string.Empty, lambda.Name);
        }
Пример #8
0
 public static IAsyncResult BeginInvoke <TReturn, TArg1>(this ISynchronizeInvoke target, Func <TArg1, TReturn> op, TArg1 arg1)
 {
     return(BeginInvokeImpl(target, Lambda.Create(() => op(arg1))));
 }
Пример #9
0
 public static IAsyncResult BeginInvoke <TArg1, TArg2>(this ISynchronizeInvoke target, Action <TArg1, TArg2> callback, TArg1 arg1, TArg2 arg2)
 {
     return(BeginInvokeImpl(target, Lambda.Create(() => callback(arg1, arg2))));
 }
Пример #10
0
 public static IAsyncResult BeginInvokeNoThrow <TArg1>(this ISynchronizeInvoke target, Action <TArg1> callback, TArg1 arg1)
 {
     return(BeginInvokeImplNoThrow(target, Lambda.Create(() => callback(arg1))));
 }