public void CallSingle_Exception_PassedAndNoOutput()
            {
                BrokerContext.Initialize(CprBroker.Utilities.Constants.BaseApplicationToken.ToString(), "");
                var facade = new FacadeStub();
                var prov   = new FacadeStub.ProviderStub()
                {
                    _GetOne = (s) =>
                    {
                        throw new Exception();
                    }
                };

                FacadeStub.Element[] ret;
                var elements = new FacadeStub.ElementStub[] {
                    new FacadeStub.ElementStub()
                    {
                        Input = "DDD", Succeeded = true, Updatable = true
                    },
                    new FacadeStub.ElementStub()
                    {
                        Input = "SSS", Succeeded = true, Updatable = true
                    }
                };

                facade.CallSingle(prov, elements, out ret);
                Assert.AreEqual("DDD", elements[0].Input);
                Assert.Null(elements[0].Output);

                Assert.AreEqual("SSS", elements[1].Input);
                Assert.Null(elements[1].Output);
            }
            public void CallDataProviders_FirstProviderException_ProvidersCascaded()
            {
                BrokerContext.Initialize(CprBroker.Utilities.Constants.BaseApplicationToken.ToString(), "");
                var  facade = new FacadeStub();
                bool called = false;
                var  provs  = new ISingleDataProvider <string, string>[] {
                    new FacadeStub.ProviderStub()
                    {
                        _GetBatch = (i) => { called = true; throw new Exception(); }
                    },
                    new FacadeStub.ProviderStub()
                    {
                        _GetBatch = (i) => new string[] { null, "DDD" }
                    }
                };

                Assert.False(called);
                var ret = facade.CallDataProviders(provs, new string[] { "SSS", "DDD" });

                Assert.True(called);

                Assert.AreEqual(2, ret.Length);

                Assert.AreEqual("SSS", ret[0].Input);
                Assert.Null(ret[0].Output);

                Assert.AreEqual("DDD", ret[1].Input);
                Assert.AreEqual("DDD", ret[1].Output);
            }
            public void CreateDataProviders_FunkyType_None()
            {
                BrokerContext.Initialize(CprBroker.Utilities.Constants.BaseApplicationToken.ToString(), "");
                var facade = new FacadeStub();
                IEnumerable <FunkyDataProvider> provs;
                var ret = facade.CreateDataProviders(out provs);

                Assert.IsEmpty(provs.ToArray());
                Assert.AreEqual("503", ret.StatusKode);
            }
            public void Aggregate_AllFailed_503()
            {
                var facade   = new FacadeStub();
                var elements = new FacadeStub.Element[] { new FacadeStub.ElementSub()
                                                          {
                                                              Succeeded = false
                                                          } };
                var ret = facade.Aggregate <BasicOutputType <string[]> >(elements);

                Assert.AreEqual("503", ret.StandardRetur.StatusKode);
            }
            public void BaseUpdateDatabase_Normal_InOutPassed()
            {
                var facade = new FacadeStub();

                facade.BaseUpdateDatabase(new FacadeStub.Element[] { new FacadeStub.Element()
                                                                     {
                                                                         Input = "Inp", Output = "Out"
                                                                     } });
                Assert.AreEqual("Inp", facade.inputs[0]);
                Assert.AreEqual("Out", facade.outputs[0]);
            }
            public void CallDataProviders_NoProv_Fail()
            {
                var facade = new FacadeStub();
                var provs  = new ISingleDataProvider <string, string>[] { };
                var ret    = facade.CallDataProviders(provs, new string[] { "SSS", "DDD" });

                Assert.AreEqual(2, ret.Length);

                Assert.AreEqual("SSS", ret[0].Input);
                Assert.Null(ret[0].Output);

                Assert.AreEqual("DDD", ret[1].Input);
                Assert.Null(ret[1].Output);
            }
            public void CallSingle_Normal_CorrectOuput()
            {
                var facade = new FacadeStub();
                var prov   = new FacadeStub.ProviderStub()
                {
                    _GetOne = (s) => "ddd" + s, _ImmediateUpdatePreferred = false
                };

                FacadeStub.Element[] ret;
                facade.CallSingle(prov, new FacadeStub.ElementStub[] { new FacadeStub.ElementStub()
                                                                       {
                                                                           Input = "DDD", Succeeded = true, Updatable = true
                                                                       } }, out ret);
                Assert.AreEqual("dddDDD", ret[0].Output);
            }
            public void Aggregate_Mixed_CorrectReasonAndInput()
            {
                var facade   = new FacadeStub();
                var elements = new FacadeStub.Element[] { new FacadeStub.ElementSub()
                                                          {
                                                              Input = "0Inp", Output = "0", Succeeded = false, PossibleErrorReason = "SSSSS"
                                                          }, new FacadeStub.ElementSub()
                                                          {
                                                              Output = "1", Succeeded = true
                                                          } };
                var ret = facade.Aggregate <BasicOutputType <string[]> >(elements);

                Assert.Greater(ret.StandardRetur.FejlbeskedTekst.IndexOf("SSSSS"), -1);
                Assert.Greater(ret.StandardRetur.FejlbeskedTekst.IndexOf("0Inp"), -1);
            }
            public void Aggregate_Mixed_ResultPropagatedOnlyForSuccess()
            {
                var facade   = new FacadeStub();
                var elements = new FacadeStub.Element[] { new FacadeStub.ElementSub()
                                                          {
                                                              Output = "0", Succeeded = false
                                                          }, new FacadeStub.ElementSub()
                                                          {
                                                              Output = "1", Succeeded = true
                                                          } };
                var ret = facade.Aggregate <BasicOutputType <string[]> >(elements);

                Assert.Null(ret.Item[0]);
                Assert.AreEqual("1", ret.Item[1]);
            }
示例#10
0
            public void CallSingle_Normal_Success()
            {
                var facade = new FacadeStub();
                var prov   = new FacadeStub.ProviderStub()
                {
                    _GetOne = (s) => "ddd" + s
                };

                FacadeStub.Element[] ret;
                facade.CallSingle(prov, new FacadeStub.ElementStub[] { new FacadeStub.ElementStub()
                                                                       {
                                                                           Input = "DDD", Succeeded = true, Updatable = true
                                                                       } }, out ret);
                Assert.AreEqual(1, facade.updatedInputs.Count + ret.Length);
                Assert.AreEqual(1, facade.updatedOutputs.Count + ret.Length);
            }
示例#11
0
            public void CallSingle_Failed_ResultPropagated()
            {
                var facade = new FacadeStub();
                var prov   = new FacadeStub.ProviderStub()
                {
                    _GetOne = (s) => s, _ImmediateUpdatePreferred = false
                };

                FacadeStub.Element[] ret;
                var elements = new FacadeStub.ElementStub[] { new FacadeStub.ElementStub()
                                                              {
                                                                  Input = "DDD", Succeeded = false, Updatable = false
                                                              } };

                facade.CallSingle(prov, elements, out ret);
                Assert.AreEqual("DDD", elements[0].Output);
            }
示例#12
0
            public void CallSingle_SucceededImmediateUpdateNotPreferred_UpdatePostponed()
            {
                var facade = new FacadeStub();
                var prov   = new FacadeStub.ProviderStub()
                {
                    _GetOne = (s) => "ddd" + s, _ImmediateUpdatePreferred = false
                };

                FacadeStub.Element[] ret;
                facade.CallSingle(prov, new FacadeStub.ElementStub[] { new FacadeStub.ElementStub()
                                                                       {
                                                                           Input = "DDD", Succeeded = true, Updatable = true
                                                                       } }, out ret);
                Assert.AreEqual(1, ret.Length);
                Assert.AreEqual(0, facade.updatedInputs.Count);
                Assert.AreEqual(0, facade.updatedOutputs.Count);
            }
示例#13
0
            public void CallDataProviders_ProvWithPartial_ProvidersCascaded()
            {
                var facade = new FacadeStub();
                var provs  = new ISingleDataProvider <string, string>[] {
                    new FacadeStub.ProviderStub()
                    {
                        _GetBatch = (i) => new string[] { "SSS", null }
                    },
                    new FacadeStub.ProviderStub()
                    {
                        _GetBatch = (i) => new string[] { "DDD" }
                    }
                };

                var ret = facade.CallDataProviders(provs, new string[] { "SSS", "DDD" });

                Assert.AreEqual(2, ret.Length);

                Assert.AreEqual("SSS", ret[0].Input);
                Assert.AreEqual("SSS", ret[0].Output);

                Assert.AreEqual("DDD", ret[1].Input);
                Assert.AreEqual("DDD", ret[1].Output);
            }
示例#14
0
            public void Aggregate_Null_Exception()
            {
                var facade = new FacadeStub();

                facade.Aggregate <BasicOutputType <string[]> >(null);
            }