Skip to content

Instantly share code, notes, and snippets.

@aallbrig
Last active February 19, 2022 21:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aallbrig/083500942aaf96a47932df93cc20b75b to your computer and use it in GitHub Desktop.
Save aallbrig/083500942aaf96a47932df93cc20b75b to your computer and use it in GitHub Desktop.
public class ScriptableObjectUnitTests
{
[UnityTest]
public void Script_ExposesFunctionToBroadcast_MultipleTypesOfGameEvents()
{
// Arrange
var broadcaster = new GameObject().AddComponent<BroadcastGameEvents>();
var gameEventA = ScriptableObject.CreateInstance<GameEvent>();
var gameEventB = ScriptableObject.CreateInstance<GameEvent>();
var gameEventC = ScriptableObject.CreateInstance<GameEvent>();
var spyEventListenerA = Substitute.For<IZeroObjectEventListener>();
var spyEventListenerB = Substitute.For<IZeroObjectEventListener>();
var spyEventListenerC = Substitute.For<IZeroObjectEventListener>();
gameEventA.RegisterListener(spyEventListenerA);
gameEventB.RegisterListener(spyEventListenerB);
gameEventC.RegisterListener(spyEventListenerC);
broadcaster.gameEvents.Add(gameEventA);
broadcaster.gameEvents.Add(gameEventB);
broadcaster.gameEvents.Add(gameEventC);
// Act
broadcaster.Broadcast();
// Assert
spyEventListenerA.Received().OnEventBroadcast();
spyEventListenerB.Received().OnEventBroadcast();
spyEventListenerC.Received().OnEventBroadcast();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment