Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generator tests #142

Merged
merged 4 commits into from
Oct 21, 2022
Merged

Generator tests #142

merged 4 commits into from
Oct 21, 2022

Conversation

nvdweem
Copy link
Collaborator

@nvdweem nvdweem commented Oct 21, 2022

Tests to test the generator.

I also added a .gitattributes to force the text files to use \n for newlines, the generator generates the files like that. Not having this setting meant that on Windows all generated files would be marked as changed.
Afaik IDE's handle \n on Windows perfectly well.

@ChristopheCVB ChristopheCVB merged commit b88ac1b into develop Oct 21, 2022
@ChristopheCVB ChristopheCVB deleted the generator_tests branch October 21, 2022 12:43
ChristopheCVB added a commit that referenced this pull request Oct 22, 2022
* Updated README with 1.3.0 last-release notice

* Adding PR CI/CD for unit tests

* fixed syntax issue on pr workflow

* Copied over short repo transfer notice from 5.x.x/develop branch

* docs: Correcting typo

* Create issue templates

* fix: requested changes

* 5.x.x/develop is the new develop (#136)

* test: getVideoSettingsRequest

* test: removeSceneCollectionRequest

* test: setCurrentSceneCollectionRequest

* test: setProfileParameterRequest

* test: broadcastCustomEventRequest

* test: getSourceActiveRequest

* test: getSourceScreenshotRequest

* test: saveSourceScreenshotRequest

* core: code sharing

* Sync with 5.x.x/develop

* requested changes

* cicd: modified e2e auth test to pull and run OBS Websocket, and run the authentication test instead

* separated General request tests

* separated Config request tests

* separated Source request tests

* separated Transitions request tests

* test: createInputRequest

* test: getInputListRequest

* test: getInputKindListRequest
fix: test method naming

* test: getInputMonitorTypeRequest

* core: Rename package to io.obswebsocket.community.client

* core: RequestResponse and RequestBatchResponse isSuccessful

* test: getInputMuteRequest

* test: getInputSettingsRequest

* test: getInputTracksRequest

* test: getInputVolumeRequest

* test: getSpecialInputNamesRequest

* test: setInputMonitorTypeRequest

* test: setInputMuteRequest

* test: setInputNameRequest

* test: createInputRequest

* test: setInputSettingsRequest
fix: createInputRequest

* test: setInputMuteRequest

* test: setInputVolumeRequest
fix: SetInputVolumeRequest missing parameters

* test: toggleInputMuteRequest

* fix: Package

* fix: Package

* test: getTransitionListRequest

* test: releaseTbarRequest

* test: setCurrentTransitionDurationRequest

* test: setCurrentTransitionRequest

* test: setTbarPositionRequest

* test: setTransitionSettingsRequest

* test: triggerStudioModeTransitionRequest

* test: createSceneRequest

* test: deleteSceneTransitionOverrideRequest

* test: getCurrentPreviewSceneRequest

* test: getCurrentProgramSceneRequest

* test: getSceneListRequest

* test: getSceneTransitionOverrideRequest

* test: removeSceneRequest

* test: setCurrentPreviewSceneRequest

* test: setCurrentProgramSceneRequest

* test: setSceneNameRequest

* test: setSceneTransitionOverrideRequest

* test: createInputRequest

* test: getSourceFilterRequest

* test: GetSourceFilterListRequest

* test: removeSourceFilterRequest

* test: setSourceFilterEnabledRequest

* test: setSourceFilterSettingsRequest

* fix: typo

* fix: typo

* doc: OBSCommunicator missing param

* core: rpc version is now static, and throws error on mismatch

* fix: controller not disconnecting on error. test: Replaced CommunicatorE2E tests with tests against Controller. core: Added direct setter for communicator in the RemoteController builder

* feat: GetSystemStats

* feat: GetProjectorList

* feat: CloseProjector

* feat: GetRecordStatus

* test: createSceneItemRequest

* test: duplicateSceneItemRequest

* feat: Start/Stop/Toggle Record

* feat: Start/Stop/Toggle Record

* test: getSceneItemColorRequest

* Moved contact e2e tests into lifecycle e2e tests

* test: getSceneItemEnabledRequest

* feat: Resume/Pause/Toggle RecordPause

* core: updated rpc check to verify server can support client

* feat: Get/Set RecordDirectory

* feat: Get/Set RecordFilenameFormatting

* fix: Optimize Imports

* test: getSceneItemListRequest

* test: getSceneItemLockedRequest

* test: removeSceneItemRequest

* test: setSceneItemEnabledRequest

* test: setSceneItemIndexRequest

* test: setSceneItemLockedRequest

* fix: Log

* feat: RemoveInput

* feat: connection timeout when obs unreachable

* test: remove last disabled case; covered already in auth test

* Added unit test for RemoteController builder, and increased e2e test timeout

* cicd: updated pr flow to upload failing test results

* cicd: updated test result upload to include all html resources in report

* cicd: gave test reports unique names per job

* test: Moved failed connection test into integration tests; the explicitly don't require OBS, and it may work better in cicd

* cicd: fix, '/' invalid char in test results artifact name

* test: updated to simply verify throwable is provided at all, since the specific kind depends on the OS. core: ensure throwable (cause if available, else the throwable) is always provided when obs cannot be reached

* request: GetReplayBufferStatus

* request: ToggleReplayBufferRequest

* request: StopReplayBuffer

* request: SaveReplayBuffer

* style: updated constructor param javadocs. core: moved verification to constructor.

* request: GetLastReplayBufferReplay

* request: GetOutputList

* request: ToggleOutput

* request: StartOutput

* request: StopOutput

* feat: Output Request Methods in OBSRemoteController

* test: Output Request tests

* core: optimize imports

* fix: record requests methods in OBSRemoteController

* fix: wrong return Type

* fix: request method parameters

* fix: wrong request type

* fix: requestType in getOutputListRequest Test

* core: added websocket closecode enum, and updated tests checking code to use the enum

* code: added fromCode lookup method for WebSocketCloseCode enum

* fix: missing GetSystemStatsRequest method

* fix: missing request methods

* core: enforced websocketCloseCode enum on lifecycle callbacks. test: cleaned up several irrelevant and missing tests in the 'Unescured' test module.

* fix: catch for Ubuntu case unknown host

* test: Added positive connect test for unsecured case, and clarified the secured case is already covered.

* core: hardened error handling for connect sequence. Unfortuntately cannot unit-test with Jetty WebSocketClient, it has several final methods and I cannot implement my own because there is no interface. We could address this later, but creating a facade should be done carefully...the Jetty client could be quite messy to cleanly facade out. Yucky yucky.

* request: GetStreamStatus

* request: ToggleStream

* request: StartStream

* request: StopStream

* request: SendStreamCaption

* request: GetStreamServiceSettings

* request: SetStreamServiceSettings

* feat: request methods

* test: Stream request tests

* request: GetMediaInputStatus

* request: OffsetMediaInputTimecode

* request: SetMediaInputTimecode

* request: SetMediaInputPauseState

* request: StopMediaInput

* request: RestartMediaInput

* request: NextMediaInputPlaylistItem

* request: PreviousMediaInputPlaylistItem

* fix: GroupId

* feat: Media Input request methods

* test: Media Input Request Tests

* test: getVersionRequest

* fix: Media Inputs package name

* core: Migrate to Gradle v7.1

* core: Migrate to Gradle v7.1

* core: Migrate to Gradle v7.1

* feat: SetSceneIndex

* doc: Update README.md with groupId

* doc: Include and Apply IntelliJ Java Google CheckStyle

* fix: SceneItems package name

* fix: WebSocketCloseCode snucked semicolon

* core: Moved onReady and onDisconnect into Communicator listeners, verified tests pass as before. Need to add additional specs verifying calls to expected lifecycle methods

* core: implemented ready and disconnect callbacks in ObsCommunicator

* core: added lifecycleBuilder facade covering both controller and communicator lifecycle callback registration. style: Added javadocs to communicator and controller. test: updated integration tests to expected onReady rather than onIdentified

* doc: Add Example Gradle Module

* chore: removed unnecessary CommunicatorBuilder constructor with reference to RemoteController

* doc: Add Example class

* doc: Add Example class

* doc: Add Example class

* cicd: Update Workflows

* cicd: Update Workflows

* cicd: Update Workflows

* doc: Add example implementation

* core: Removed isFailed calls; not useful or correct here

* core: removed references to controller and communicator in lifecycle callback listeners; no-longer needed, nor should be exposed.

* core: removed logical error, renamed builders, removed cruft, and added @OVERRIDES where missing

* cicd: Fix pr workflow

* doc: Add password to example and update onReady signature

* core: Remove release related stuff from example build.gradle

* core: Move lombok.config to client module

* doc: Update README.md

* docs: Reorganized docs, explaining the builder in pieces and adding a separate section comparing this library to the prior version. Moved the transfer notice to CONTRIBUTING and updated the gradle calls

* docs: added section on error handling

* docs: removed unnecessary header in text under logo

* docs: Added gradle logging example, and various typos

* docs: added link to file issue

* doc: Add example implementation

* feat: Get/Set GlobalPersistentData Requests

* fix: Scene Events

* feat: (WIP) Transition Events

* fix: Transition Events package

* feat: (WIP) Filter Events

* fix: CustomEvent

* fix: CustomEvent

* core: Rename

* Update GetInputKindListRequest.java

* core: PersistentDataRequest

* feat: GetStats request

* feat: SetCurrentProfile request

* feat: CreateProfile request

* feat: RemoveProfile request

* feat: SetVideoSettings request

* feat: GetInputAudioSyncOffset request

* feat: SetInputAudioSyncOffset request

* fix: rename GetInputTracks >> GetInputAudioTracks

* feat: GetInputPropertiesListPropertyItems request

* fix: make itemValue a string

* feat: PressInputPropertiesButton request

* fix: persistent data requests parameters and response names

* fix: request/response parameters

* fix: request/response parameters

* feat: StartReplayBuffer request

* core: reformat request code

* feat: OBSRemoteController requests

* fix: unit-tests

* feat: abstract ProfileRequest class

* fix: GetInputAudioSyncOffsetRequest extending InputRequest

* fix: SetInputAudioSyncOffsetRequest extending InputRequest

* fix: inputAudioSyncOffset type

* fix: propertyItems type

* add todo

* 5.x.x/events (#119)

* fix: rename CurrentSceneChangedEvent >> CurrentProgramSceneChangedEvent

* core: reformat code

* fix: type

* fix: Enum name

Co-authored-by: Christophe Carvalho Vilas-Boas <christophe.carvalhovilasboas@gmail.com>

* Issue forms (#129)

* Copied over short repo transfer notice from 5.x.x/develop branch

* docs: Correcting typo

* Create issue templates

* fix: requested changes

* Change missing-event issue template to new Issue Form

* Change missing-request issue template to new Issue Form

Co-authored-by: TinaTiel <tinatielwastaken@gmail.com>
Co-authored-by: Pjiesco <55349095+Pjiesco@users.noreply.github.com>
Co-authored-by: Pjiesco <Pjiesco@gmail.com>

* core: Protocol Update (#122)

* core: OperationCode

* core: OperationCode

* core: Message data

* core: Message data

* core: Message data

* core: Comment GetVersion Request when client is identified

* core: requestStatus Codes

* core: Upgrade dependencies

* core: Rename Event.Category to Event.Intent
doc: Rename obs-websocket repo + fixes

* core: Event Serialization + CurrentProfileChangedEvent

* core: CurrentSceneCollectionChangedEvent

* core: ProfileListChangedEvent

* core: SceneCollectionListChangedEvent

* fix: make fields final

* core: CustomEvent

* core: ExitStartedEvent

* core: StudioModeStateChangedEvent

* fix: Example

* fix: CustomEventTriggered and SceneCollectionListChangedEventTriggered tests

* core: call super on toString + Filter events

* fix: ObsCommunicatorEventIT

* fix: FilterEvent and add test

* core: InputAudioSyncOffsetChangedEvent

* core: Input events + Tests

* core: InputVolumeChangedEvent

* core: Media events + Tests

* core: Output events + Tests

* core: SceneItem events + Tests

* core: Scene events + Tests

* core: Update Logo fixes #124

* core: Upgrade lombok

* core: Make *Event.messageData non final

* core: TransitionEvent and subclasses

* core: TransitionEvent and subclasses

* core: TransitionEvent and subclasses

* core: Events Serialization Tests

* core: Events Serialization Tests

* core: Events Serialization Tests

* test: Reorganize test classes

* Update GetStreamServiceSettingsResponse.java

https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#getstreamservicesettings

* 5.x.x/protocol update requests config (#128)

* core: Protocol Update for Requests

* core: Protocol Update Config Requests

* core: Optimize imports

* fix: Example

* Fix change in messages (#134) + more (#135)

* Update example default port

* NPE 'fix', not sure if messageData is supposed to be nullable

* We know we are connecting, no point in info logging that

* Request data field was incorrectly named

* Put response data in the correct place

* Reuse websocket client and add explicit stop

* Actually close the websocket when calling disconnect

* Example should now stop the communicator at the end

* Allow configuring the websocket client

* Put requestData in the correct place

* Make events work again and (de)serialization using generics

* Update references to old default port

* Fix testcases

* Update close codes

* Change docker port mapping to the non-standard websocket port

* Restore example

* Add link to Google style convention

* Fix review feedback

* Get eventIntent through messageData

* Apply workaround to allow SuperBuilder inheritance
projectlombok/lombok#2524

* Don't use builders when not needed

* Don't use boolean object when not needed

Co-authored-by: Niels van de Weem <n.van.de.weem@smile.nl>

* core: clean

* FIX: VendorEvent

* cicd: Upgrade GitHub Actions

* cicd: Upgrade GitHub Actions

* cicd: Upgrade GitHub Actions
core: Upgrade Gradle Wrapper

* core: Upgrade Dependencies & clean

* fix: Events Intent

* fix: Events Intent

* core: RequestBatch and RequestBatchResponse

* fix: Event.Intent names

* fix: RequestBatch, RequestBatchResponse is still todo

* core: Event.Intent and Requests + RequestResponses

* fix: RequestBatchResponse

* fix: Remove not-needed superbuilders

* fix: Get/SetSceneSceneTransitionOverride

* fix: Fix compilation errors

* fix: Update test

Co-authored-by: Pjiesco <Pjiesco@gmail.com>
Co-authored-by: Niels van de Weem <nielsgithub@vdweem.com>
Co-authored-by: Niels van de Weem <n.van.de.weem@smile.nl>

Co-authored-by: Pjiesco <Pjiesco@gmail.com>
Co-authored-by: TinaTiel <tinatielwastaken@gmail.com>
Co-authored-by: Pjiesco <55349095+Pjiesco@users.noreply.github.com>
Co-authored-by: TinaTiel <contact@tinatiel.com>
Co-authored-by: Niels van de Weem <nielsgithub@vdweem.com>
Co-authored-by: Niels van de Weem <n.van.de.weem@smile.nl>

* fix: Publication and Signing

* Update requests and events (#137)

* Update scenes Requests

* Add @Getter and @tostring

* Update sceneitem requests

* Update general requests

* doc: Update README.md

* tests: Fix and use resources

* core: Rename Controller methods

* core: UI Events

* core: Media Inputs Events

* core: RequestSerializationTest

* core: GetVersion

* core: GetVersion

* core: GetStats

* core: BroadcastCustomEvent

* core: StreamStateChangedEvent

* core: RecordStateChangedEvent

* core: StreamStateChangedEvent

* core: OutputStateChangedEvent

* core: ReplayBufferStateChangedEvent

* core: VirtualcamStateChangedEvent

* core: ReplayBufferSavedEvent

* core: general request + response tests

* core: GetSceneList Request + Response tests

* core: GetGroupList Request + Response tests

* core: GetCurrentProgramScene Request + Response tests

* core: SetCurrentProgramScene Request + Response tests

* core: GetCurrentPreviewScene Request + Response tests

* core: SetCurrentPreviewScene Request + Response tests

* core: CreateScene Request + Response tests

* core: RemoveScene Request + Response tests

* core: SetSceneName Request + Response tests

* core: GetSceneSceneTransitionOverride Request + Response tests

* core: SetSceneSceneTransitionOverride Request + Response tests

* core: fix test

* core: ExitStartedEvent tests

* core: VendorEvent rename + tests

* core: CurrentSceneCollectionChanging + tests

* core: CurrentSceneCollectionChanged tests

* core: Simplify tests

* core: SceneCollectionListChanged tests

* core: CurrentProfileChangingEvent + tests

* core: CurrentProfileChanged tests

* core: ProfileListChanged tests

* core: Fix compilation errors after changing events

* core: And actually fix the test

* core: SceneCreated test

* core: SceneRemoved test

* core: SceneNameChanged test

* core: CurrentProgramSceneChanged test

* core: CurrentPreviewSceneChanged test

* core: SceneListChangedEvent test

* core: InputCreatedEvent test

* core: Put data type of VendorEvent back to JsonObject

* core: InputRemovedEvent tests

* core: InputNameChangedEvent tests

* core: InputActiveStateChanged tests

* core: Rename incorrectly named test classes

* core: InputShowStateChangedEvent tests

* core: InputMuteStateChangedEvent tests

* core: InputVolumeChangedEvent tests

* core: InputAudioBalanceChangedEvent + tests

* core: InputAudioSyncOffsetChangedEvent tests

* core: InputAudioTracksChangedEvent tests (with todo)

* core: InputAudioMonitorTypeChangedEvent + tests (with todo)

* core: InputVolumeMetersEvent tests

* core: Fix ObsCommunicatorEventIT

* core: CurrentSceneTransitionChangedEvent tests

* core: CurrentSceneTransitionDurationChangedEvent + tests

* core: SceneTransitionStartedEvent tests

* core: SceneTransitionEndedEvent tests

* core: SceneTransitionVideoEndedEvent + tests

* core: SourceFilterListReindexedEvent tests

* core: SourceFilterCreatedEvent tests

* core: SourceFilterRemovedEvent tests

* core: SourceFilterNameChangedEvent tests

* core: SourceFilterEnableStateChangedEvent tests

* core: SceneItemCreatedEvent tests

* core: SceneItemRemovedEvent tests

* core: SceneItemListReindexedEvent tests (with todo)

* core: SceneItemEnableStateChangedEvent tests

* core: SceneItemLockStateChangedEvent tests

* core: SceneItemSelectedEvent + tests

* core: SceneItemTransformChangedEvent + tests (with todo)

* core: GetStudioModeEnabled tests

* core: SetStudioModeEnabled tests

* core: OpenInputPropertiesDialog + tests

* core: OpenInputFiltersDialog + tests

* core: OpenInputInteractDialog + tests

* core: GetMonitorList + tests (with todo)

* core: OpenVideoMixProjector + tests

* core: OpenSourceProjector + tests

* core: GetMediaInputStatus tests

* core: SetMediaInputCursor + tests

* core: OffsetMediaInputCursor + tests

* core: TriggerMediaInputActionRequest + tests

* core: GetRecordStatus tests

* core: ToggleRecord tests

* core: StartRecord tests

* core: StopRecord tests

* core: ToggleRecordPause tests

* core: PauseRecord tests

* core: ResumeRecord tests

* core: GetStreamStatus tests

* core: ToggleStream tests

* core: StartStream tests

* core: StopStream tests

* core: SendStreamCaption tests

* core: GetVirtualCamStatus tests

* core: ToggleVirtualCam tests

* core: StartVirtualCam tests

* core: StopVirtualCam tests

* core: GetReplayBufferStatus tests

* core: ToggleReplayBuffer tests

* core: StartReplayBuffer tests

* core: StopReplayBuffer tests

* core: SaveReplayBuffer tests

* core: GetLastReplayBufferReplay tests

* core: GetOutputList tests (with todo)

* core: GetOutputStatus tests

* core: ToggleOutput tests

* core: StartOutput tests

* core: StopOutput tests

* core: GetOutputSettings tests (with todo)

* core: SetOutputSettings tests (with todo)

* core: Clean SceneItem.BlendMode

* core: Clean SceneItem.BlendMode

* core: Clean SceneItem.BlendMode

* core: Clean SceneItem.BlendMode

* core: GetPersistentData & tests

* core: SetPersistentData tests

* core: Input.MonitorType

* core: SceneItem.Transform

* core: SceneItemTransformChangedEvent tests

* core: SceneItemTransformChangedEvent tests

* core: GetMonitorListResponse & UI Response Tests

* core: GetOutputSettingsResponse

* core: SetOutputSettingsRequest

* core: InputAudioTracksChangedEvent & tests

* core: InputAudioTracksChangedEvent & tests

* core: GetRecordStatus fixes #138

* core: GetRecordStatus test

* core: Check Types in resources

* core: Check Types in resources

* core: Config Requests/Responses tests

* core: Sources Requests/Responses tests

* core: Inputs Requests/Responses tests

* fix: Create/Remove Input tests

* core: Filters Requests/Responses tests

* core: Rename SceneItemListReindexedEvent.SpecificData.SceneItem to SceneItemIdAndIndex

* Message Generator (#139)

* Generate requests from protocol.json

* Extract RequestType

* Generate Responses, OBSRemoteControllerBase, RequestTypes

* Get the source compiling again and fix some more types

* Generate events

* All events/requests/responses are generated

* core: sceneItemTransform is always SceneItem.Transform

* core: monitorType is always Input.MonitorType

* fix: tests

* fix: integrationTests

* core: Add Version Catalog

* core: Additional types adjustments

* fix: Lombok actually needs to be an implementation dependency

* core: Additional types adjustments

* generator: Lombok is needed in implementation

* generator: Don't generate java.lang imports, prevent formatting and put generation warning at the top of the class

* core: re-generate messages

* generator: allow overrides & fix GetOutputList/Sleep messages

Co-authored-by: Niels <NielsGithub@vdweem.com>

Co-authored-by: Christophe Carvalho Vilas-Boas <christophe.carvalhovilasboas@gmail.com>
Co-authored-by: Niels van de Weem <n.van.de.weem@smile.nl>
Co-authored-by: Niels van de Weem <nielsgithub@vdweem.com>

* core: Generate proper Javadoc (#140)

* core: Generate proper Javadoc

* core: Generate proper Javadoc

* Generator tests (#142)

* generator: Add testframework for generator tests

* core: Force lf line endings

* generator: Test the generator fully

* core: Include messagegenerator tests on pr action

* Fix/e2e tests (#143)

* core: allow blocking calls,  events/responses have no @nonnull fields, fix Scene definition

* core: fix testcases

* core: include getters in response/event classes

* example: update to show blocking calls & convenience getters

* core: re-generate messages

* fix: expected scene type was incorrect

* fix: don't add multiple onControllerError handlers

* fix: cleanup after test

* core: describe what happens when the timeout occurs

* test: fix vlc todo

* test: fix other todo's

Co-authored-by: TinaTiel <contact@tinatiel.com>
Co-authored-by: TinaTiel <tinatielwastaken@gmail.com>
Co-authored-by: Pjiesco <55349095+Pjiesco@users.noreply.github.com>
Co-authored-by: Pjiesco <Pjiesco@gmail.com>
Co-authored-by: Niels van de Weem <nielsgithub@vdweem.com>
Co-authored-by: Niels van de Weem <n.van.de.weem@smile.nl>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants