-
Notifications
You must be signed in to change notification settings - Fork 82
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DEVX-6546 | [Video] Signaling (#315)
* Set up Video project, implement Maybe monad * Implement Result monad * Fix coverage (error not extracted from monad) * Add more client frameworks on test project, remove global usings * Implement VideoClient / SessionClient * Implement IpAddress and CreateSessionRequest, add monadic bind to Result * Implement monadic bind on Maybe, factory method for ResultFailure * Implement MaybeAssertions * Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) * Implement IfFailure/IfSuccess on Result, use on ResultAssertions * Add missing xml doc on IfFailure/IfSuccess * Implement MapAsync, BindAsync for Result * Implement CreateSession * Add temporary sample test * Test refactoring * Add missing Xml Documentation * Remove sample test * Update test for token generation * Implement GetStreamRequest * Create structure for GetStream * Make Failure state of Result an IResultFailure. It will allow custom formatting for specific failures * Implement HttpFailure with status codes, adapt CreateSession to use the new failure. * Implement GetStream with error codes * Remove custom url for WireMock * Refactoring with extension methods * Implement GetStreamAsync with successful state * Implement GetStreamAsync failure when response cannot be serialized * Remove conflicts from last merge (ResultFailure) * Test refactoring * Code cleanup & Xml Documentation * Implement GetStreamsRequest * Implement GetStreams * Replace FluentAssertions extension .Be by .BeSome/.BeSuccess/.BeFailure to avoid confusion with base .Be method The extension using clause wasn't discovered by the IDE. * Rename FluentAssertion extensions * Implement use-case approach with Screaming architecture. This will allow to comply with OCP * Fix type change after merge * Add factory method for failure, handle empty response differently * Solve merge conflicts * Remove unnecessary setter * Simplify token generation * Simplify http request creation * Extract ErrorCode to higher namespace * Remove TestRun project * Implement ChangeStreamLayoutRequest with Parsing * Use specific settings for camelCase serialization * Implement ChangeStreamLayout use case * Use 'Hollywood principle' for reducing the number of dependencies on clients & use cases (token generation using credentials) * Remove GetStream.ErrorResponse * Setting up structure for Signaling * Implement parsing for SendSignalsRequest * Empty use case for SendSignals * Implement SendSignals use case * Implement SendSignalUseCase * Address duplication in Signaling * Address duplication for Sessions and Signaling * Add test for CreateSession GetEndpointPath * Handle null & empty bodies on responses * Add missing Xml documentation
- Loading branch information
Showing
35 changed files
with
1,123 additions
and
352 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.