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

Set up some automated test scenarios for the game instance. #1089

Open
8 of 44 tasks
JSideris opened this issue May 14, 2020 · 0 comments
Open
8 of 44 tasks

Set up some automated test scenarios for the game instance. #1089

JSideris opened this issue May 14, 2020 · 0 comments

Comments

@JSideris
Copy link
Contributor

JSideris commented May 14, 2020

And manually test these things until it's fully automated.

Core

  • Instantiate a game server.
  • Instantiate a game client.
  • Add a GameObject to a GameInstance and ensure it gets added to the appropriate collections.
  • Test setters in GameObjectFactory.
  • Add multiple GameObjects and check for unique IDs.
  • Remove a GameObject via the GameObjectFactory and ensure that it really gets removed.
  • Reset the ID counter and ensure that objects don't get overwritten.
  • Deleting a GameObject should recycle the ID.

Auth

  • Spawning in with broken auth.
  • Trying to access a ship you aren't allowed to use.
  • Spawning in twice with the same login.

Gameplay

  • Two players killing each other.
    • Both get awarded kills.
    • If someone spawn is before the other dies, the kill shouldn't be applied to their running kill count.
  • Spawn messages being sent out of order.
  • Spawning in as each ship should result in the correct ship being spawned in.
  • Ability to cancel a death by inheriting onDeath and returning false.

Type Registry Tests

  • Encode/decode empty create.
  • Encode/decode create with data.
  • Encode/decode 1 byte int.
  • Encode/decode 2 byte int.
  • Encode/decode 4 byte int.
  • Encode/decode 8 byte int.
  • Encode/decode string.
  • Encode/decode array.
  • Encode/decode object with parent fields.
  • Encode/decode for a mapped object.

References

  • Ensure alpha references load first, then the current object, then beta references.
  • Ensure cyclic alpha references aren't possible.
  • Ensure linking two alpha and beta causes all objects in the other chain to load.
  • Ensure breaking an alpha or beta chain causes all objects in the broken-off chain to unload.
  • Verify that alpha and beta references can be reinforced, and that objects are correctly unloaded if and only if all reinforcements are broken.

Physical Objects

  • Creating an object and adding it to the scene.
  • Removing an object.
  • Removing an object => Primary + secondary physical bodies.
  • Object gets added to correct area on server.
  • Object gets added to correct area on client.
  • Switching areas on server.
  • Switching areas on client.

Tracking

  • Tracker beam.
  • Tracker bolt.
  • Tracked object dies.
  • Tracked object gets kicked.
  • Tracking the power skull.
  • Picking up the power skull tracks the grabber.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant