diff --git a/RailsSharp.Example/App/TestCtrl.js b/RailsSharp.Example/App/TestCtrl.js index da10200..e0cecd6 100644 --- a/RailsSharp.Example/App/TestCtrl.js +++ b/RailsSharp.Example/App/TestCtrl.js @@ -1,13 +1,7 @@ -var Status = (function () { - function Status() { - } - Status.Unknown = 'Unknown'; - Status.Success = 'Success'; - return Status; -})(); var TestState = (function () { function TestState() { - this.singleRequestAndResponse = Status.Unknown; + this.singleRequestAndResponse = false; + this.requestThatResultsInError = false; } return TestState; })(); @@ -19,7 +13,19 @@ function TestCtrl($scope, eventRegistry) { }; eventRegistry.hook(TestEvents.TestSingleResponse, function (reply) { $scope.$apply(function () { - $scope.testState.singleRequestAndResponse = Status.Success; + $scope.testState.singleRequestAndResponse = true; + }); + }); + var errorTestRunning = false; + $scope.inititeRequestThatResultsInErrorTest = function () { + errorTestRunning = true; + eventRegistry.raise(TestEvents.TestFailedRequest, {}); + }; + eventRegistry.hook(ServerEvents.OnError, function (error) { + $scope.$apply(function () { + if (errorTestRunning) { + $scope.testState.requestThatResultsInError = true; + } }); }); } diff --git a/RailsSharp.Example/App/TestCtrl.js.map b/RailsSharp.Example/App/TestCtrl.js.map index 1680bdb..d4dad4d 100644 --- a/RailsSharp.Example/App/TestCtrl.js.map +++ b/RailsSharp.Example/App/TestCtrl.js.map @@ -1 +1 @@ -{"version":3,"file":"TestCtrl.js","sourceRoot":"","sources":["TestCtrl.ts"],"names":["Status","Status.constructor","TestState","TestState.constructor","TestCtrl"],"mappings":"AAKA,IAAM,MAAM;IAAZA,SAAMA,MAAMA;IAGZC,CAACA;IAFOD,cAAOA,GAAGA,SAASA,CAACA;IACpBA,cAAOA,GAAGA,SAASA,CAACA;IAC5BA,aAACA;AAADA,CAACA,AAHD,IAGC;AAED,IAAM,SAAS;IACdE,SADKA,SAASA;QAEbC,IAAIA,CAACA,wBAAwBA,GAAGA,MAAMA,CAACA,OAAOA,CAACA;IAChDA,CAACA;IAIFD,gBAACA;AAADA,CAACA,AAPD,IAOC;AAGD,AADA,4CAA4C;SACnC,QAAQ,CAAC,MAAkB,EAAE,aAAmC;IACxEE,MAAMA,CAACA,SAASA,GAAGA,IAAIA,SAASA,EAAEA,CAACA;IAEnCA,MAAMA,CAACA,mCAAmCA,GAAGA;QAC5CA,aAAaA,CAACA,KAAKA,CAACA,UAAUA,CAACA,iBAAiBA,EAAEA,EAAEA,CAACA,CAACA;IACvDA,CAACA,CAAAA;IAEDA,aAAaA,CAACA,IAAIA,CAACA,UAAUA,CAACA,kBAAkBA,EAACA,UAACA,KAAyBA;QAC1EA,MAAMA,CAACA,MAAMA,CAACA;YACbA,MAAMA,CAACA,SAASA,CAACA,wBAAwBA,GAAGA,MAAMA,CAACA,OAAOA,CAACA;QAC5DA,CAACA,CAACA,CAACA;IACJA,CAACA,CAACA,CAACA;AACJA,CAACA;AAED,QAAQ,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"TestCtrl.js","sourceRoot":"","sources":["TestCtrl.ts"],"names":["TestState","TestState.constructor","TestCtrl"],"mappings":"AAMA,IAAM,SAAS;IACdA,SADKA,SAASA;QAEbC,IAAIA,CAACA,wBAAwBA,GAAGA,KAAKA,CAACA;QACtCA,IAAIA,CAACA,yBAAyBA,GAAGA,KAAKA,CAACA;IACxCA,CAACA;IAGFD,gBAACA;AAADA,CAACA,AAPD,IAOC;AAGD,AADA,4CAA4C;SACnC,QAAQ,CAAC,MAAkB,EAAE,aAAmC;IACxEE,MAAMA,CAACA,SAASA,GAAGA,IAAIA,SAASA,EAAEA,CAACA;IAEnCA,MAAMA,CAACA,mCAAmCA,GAAGA;QAC5CA,aAAaA,CAACA,KAAKA,CAACA,UAAUA,CAACA,iBAAiBA,EAAEA,EAAEA,CAACA,CAACA;IACvDA,CAACA,CAAAA;IAEDA,aAAaA,CAACA,IAAIA,CAACA,UAAUA,CAACA,kBAAkBA,EAACA,UAACA,KAAyBA;QAC1EA,MAAMA,CAACA,MAAMA,CAACA;YACbA,MAAMA,CAACA,SAASA,CAACA,wBAAwBA,GAAGA,IAAIA,CAACA;QAClDA,CAACA,CAACA,CAACA;IACJA,CAACA,CAACA,CAACA;IAEHA,IAAIA,gBAAgBA,GAAGA,KAAKA,CAACA;IAC7BA,MAAMA,CAACA,oCAAoCA,GAAGA;QAC7CA,gBAAgBA,GAAGA,IAAIA,CAACA;QACxBA,aAAaA,CAACA,KAAKA,CAACA,UAAUA,CAACA,iBAAiBA,EAAEA,EAAEA,CAACA,CAACA;IACvDA,CAACA,CAAAA;IAEDA,aAAaA,CAACA,IAAIA,CAACA,YAAYA,CAACA,OAAOA,EAACA,UAACA,KAAKA;QAC7CA,MAAMA,CAACA,MAAMA,CAACA;YACbA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;gBACtBA,MAAMA,CAACA,SAASA,CAACA,yBAAyBA,GAAGA,IAAIA,CAACA;YACnDA,CAACA;QACFA,CAACA,CAACA,CAACA;IACJA,CAACA,CAACA,CAACA;AAEJA,CAACA;AAED,QAAQ,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC"} \ No newline at end of file diff --git a/RailsSharp.Example/App/TestCtrl.ts b/RailsSharp.Example/App/TestCtrl.ts index c271286..2482918 100644 --- a/RailsSharp.Example/App/TestCtrl.ts +++ b/RailsSharp.Example/App/TestCtrl.ts @@ -1,20 +1,16 @@ interface ITestScope extends ng.IScope { testState: TestState; inititeSingleRequestAndResponseTest(): void; -} - -class Status { - static Unknown = 'Unknown'; - static Success = 'Success'; + inititeRequestThatResultsInErrorTest(): void; } class TestState { constructor() { - this.singleRequestAndResponse = Status.Unknown; + this.singleRequestAndResponse = false; + this.requestThatResultsInError = false; } - - singleRequestAndResponse: Status; - + singleRequestAndResponse: boolean; + requestThatResultsInError: boolean; } // ReSharper disable once InconsistentNaming @@ -27,9 +23,24 @@ function TestCtrl($scope: ITestScope, eventRegistry: jMess.IEventRegistry) { eventRegistry.hook(TestEvents.TestSingleResponse,(reply: TestSingleResponse) => { $scope.$apply(() => { - $scope.testState.singleRequestAndResponse = Status.Success; + $scope.testState.singleRequestAndResponse = true; }); }); + + var errorTestRunning = false; + $scope.inititeRequestThatResultsInErrorTest = () => { + errorTestRunning = true; + eventRegistry.raise(TestEvents.TestFailedRequest, {}); + } + + eventRegistry.hook(ServerEvents.OnError,(error) => { + $scope.$apply(() => { + if (errorTestRunning) { + $scope.testState.requestThatResultsInError = true; + } + }); + }); + } TestCtrl.$inject = ['$scope', 'eventRegistry']; \ No newline at end of file diff --git a/RailsSharp.Example/App/TypeScriptEvents.js b/RailsSharp.Example/App/TypeScriptEvents.js index 6f82134..8610a3b 100644 --- a/RailsSharp.Example/App/TypeScriptEvents.js +++ b/RailsSharp.Example/App/TypeScriptEvents.js @@ -3,6 +3,14 @@ var TestEvents = (function () { } TestEvents.TestSingleRequest = 'TestTestSingleRequest'; TestEvents.TestSingleResponse = 'TestTestSingleResponse'; + TestEvents.TestFailedRequest = 'TestTestFailedRequest'; + TestEvents.TestFailedResponse = 'TestTestFailedResponse'; + TestEvents.TestSingleLegacyRequest = 'TestTestSingleLegacyRequest'; + TestEvents.TestSingleLegacyResponse = 'TestTestSingleLegacyResponse'; + TestEvents.TestDoubleARequest = 'TestTestDoubleARequest'; + TestEvents.TestDoubleAResponse = 'TestTestDoubleAResponse'; + TestEvents.TestDoubleBRequest = 'TestTestDoubleBRequest'; + TestEvents.TestDoubleBResponse = 'TestTestDoubleBResponse'; return TestEvents; })(); var ServerEvents = { diff --git a/RailsSharp.Example/App/TypeScriptEvents.js.map b/RailsSharp.Example/App/TypeScriptEvents.js.map index 911599a..e7b8416 100644 --- a/RailsSharp.Example/App/TypeScriptEvents.js.map +++ b/RailsSharp.Example/App/TypeScriptEvents.js.map @@ -1 +1 @@ -{"version":3,"file":"TypeScriptEvents.js","sourceRoot":"","sources":["TypeScriptEvents.ts"],"names":["TestEvents","TestEvents.constructor"],"mappings":"AAOC,IAAM,UAAU;IAAhBA,SAAMA,UAAUA;IAKdC,CAACA;IAHKD,4BAAiBA,GAAYA,uBAAuBA,CAACA;IAErDA,6BAAkBA,GAAYA,wBAAwBA,CAACA;IAC7DA,iBAACA;AAADA,CAACA,AALH,IAKG;AAEJ,IAAI,YAAY,GAAG;IAClB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,cAAc,EAAE,sBAAsB;CACtC,CAAC"} \ No newline at end of file +{"version":3,"file":"TypeScriptEvents.js","sourceRoot":"","sources":["TypeScriptEvents.ts"],"names":["TestEvents","TestEvents.constructor"],"mappings":"AASC,IAAM,UAAU;IAAhBA,SAAMA,UAAUA;IAqBdC,CAACA;IAnBKD,4BAAiBA,GAAYA,uBAAuBA,CAACA;IAErDA,6BAAkBA,GAAYA,wBAAwBA,CAACA;IAEvDA,4BAAiBA,GAAYA,uBAAuBA,CAACA;IAErDA,6BAAkBA,GAAYA,wBAAwBA,CAACA;IAEvDA,kCAAuBA,GAAYA,6BAA6BA,CAACA;IAEjEA,mCAAwBA,GAAYA,8BAA8BA,CAACA;IAEnEA,6BAAkBA,GAAYA,wBAAwBA,CAACA;IAEvDA,8BAAmBA,GAAYA,yBAAyBA,CAACA;IAEzDA,6BAAkBA,GAAYA,wBAAwBA,CAACA;IAEvDA,8BAAmBA,GAAYA,yBAAyBA,CAACA;IAC/DA,iBAACA;AAADA,CAACA,AArBH,IAqBG;AAEJ,IAAI,YAAY,GAAG;IAClB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,cAAc,EAAE,sBAAsB;CACtC,CAAC"} \ No newline at end of file diff --git a/RailsSharp.Example/App/TypeScriptEvents.ts b/RailsSharp.Example/App/TypeScriptEvents.ts index 6cee5ce..4a82512 100644 --- a/RailsSharp.Example/App/TypeScriptEvents.ts +++ b/RailsSharp.Example/App/TypeScriptEvents.ts @@ -1,5 +1,7 @@  + declare class TestFailedRequest { + } declare class TestSingleRequest { } declare class TestSingleResponse { @@ -10,6 +12,22 @@ static TestSingleRequest : string = 'TestTestSingleRequest'; static TestSingleResponse : string = 'TestTestSingleResponse'; + + static TestFailedRequest : string = 'TestTestFailedRequest'; + + static TestFailedResponse : string = 'TestTestFailedResponse'; + + static TestSingleLegacyRequest : string = 'TestTestSingleLegacyRequest'; + + static TestSingleLegacyResponse : string = 'TestTestSingleLegacyResponse'; + + static TestDoubleARequest : string = 'TestTestDoubleARequest'; + + static TestDoubleAResponse : string = 'TestTestDoubleAResponse'; + + static TestDoubleBRequest : string = 'TestTestDoubleBRequest'; + + static TestDoubleBResponse : string = 'TestTestDoubleBResponse'; } var ServerEvents = { diff --git a/RailsSharp.Example/App_Start/HandlerConfig.cs b/RailsSharp.Example/App_Start/HandlerConfig.cs index 9f4f3ac..71b2e88 100644 --- a/RailsSharp.Example/App_Start/HandlerConfig.cs +++ b/RailsSharp.Example/App_Start/HandlerConfig.cs @@ -8,6 +8,7 @@ public class HandlerConfig public static void RegisterHandlers(IHandlerRepository repository) { repository.AddHandler(TestEvents.TestSingleRequest); + repository.AddHandler(TestEvents.TestFailedRequest); } } } \ No newline at end of file diff --git a/RailsSharp.Example/RailsSharp.Example.csproj b/RailsSharp.Example/RailsSharp.Example.csproj index cd8b8e9..e227472 100644 --- a/RailsSharp.Example/RailsSharp.Example.csproj +++ b/RailsSharp.Example/RailsSharp.Example.csproj @@ -213,6 +213,8 @@ + + diff --git a/RailsSharp.Example/Test/AnyoneIsAllowedHandlerBase.cs b/RailsSharp.Example/Test/AnyoneIsAllowedHandlerBase.cs index fde2122..bd2f6ea 100644 --- a/RailsSharp.Example/Test/AnyoneIsAllowedHandlerBase.cs +++ b/RailsSharp.Example/Test/AnyoneIsAllowedHandlerBase.cs @@ -3,9 +3,9 @@ namespace RailsSharp.Example.Test { - public abstract class AnyoneIsAllowedHandlerBase : HandlerBase + public abstract class AnyoneIsAllowedHandlerBase : HandlerBase where TRequest : RequestBase { - protected override bool IsAuthorized(TestSingleRequest request, IPrincipal principal) + protected override bool IsAuthorized(TRequest request, IPrincipal principal) { return true; } diff --git a/RailsSharp.Example/Test/TestEvents.cs b/RailsSharp.Example/Test/TestEvents.cs index a801b97..18c76a8 100644 --- a/RailsSharp.Example/Test/TestEvents.cs +++ b/RailsSharp.Example/Test/TestEvents.cs @@ -4,5 +4,13 @@ public enum TestEvents { TestSingleRequest, TestSingleResponse, + TestFailedRequest, + TestFailedResponse, + TestSingleLegacyRequest, + TestSingleLegacyResponse, + TestDoubleARequest, + TestDoubleAResponse, + TestDoubleBRequest, + TestDoubleBResponse, } } \ No newline at end of file diff --git a/RailsSharp.Example/Test/TestFailedHandler.cs b/RailsSharp.Example/Test/TestFailedHandler.cs new file mode 100644 index 0000000..581b4db --- /dev/null +++ b/RailsSharp.Example/Test/TestFailedHandler.cs @@ -0,0 +1,13 @@ +using System; +using System.Security.Principal; + +namespace RailsSharp.Example.Test +{ + public class TestFailedHandler : AnyoneIsAllowedHandlerBase + { + protected override void Invoke(TestFailedRequest request, IPrincipal principal) + { + throw new Exception(); + } + } +} \ No newline at end of file diff --git a/RailsSharp.Example/Test/TestFailedRequest.cs b/RailsSharp.Example/Test/TestFailedRequest.cs new file mode 100644 index 0000000..222ce5a --- /dev/null +++ b/RailsSharp.Example/Test/TestFailedRequest.cs @@ -0,0 +1,8 @@ +using LAN.Core.Eventing; + +namespace RailsSharp.Example.Test +{ + public class TestFailedRequest : RequestBase + { + } +} \ No newline at end of file diff --git a/RailsSharp.Example/Test/TestSingleHandler.cs b/RailsSharp.Example/Test/TestSingleHandler.cs index 139afec..60418ec 100644 --- a/RailsSharp.Example/Test/TestSingleHandler.cs +++ b/RailsSharp.Example/Test/TestSingleHandler.cs @@ -3,7 +3,7 @@ namespace RailsSharp.Example.Test { - public class TestSingleHandler : AnyoneIsAllowedHandlerBase + public class TestSingleHandler : AnyoneIsAllowedHandlerBase { private readonly IMessagingContext _messagingContext; diff --git a/RailsSharp.Example/Views/Home/Test.cshtml b/RailsSharp.Example/Views/Home/Test.cshtml index f527222..87c4431 100644 --- a/RailsSharp.Example/Views/Home/Test.cshtml +++ b/RailsSharp.Example/Views/Home/Test.cshtml @@ -7,10 +7,20 @@

Request/Response

Result: + 'glyphicon-cog': !testState.singleRequestAndResponse, + 'text-warning': !testState.singleRequestAndResponse, + 'glyphicon-check': testState.singleRequestAndResponse, + 'text-success': testState.singleRequestAndResponse}"> + +
+
+ + + Result: @* todo: test: group membership to stalwart group *@