-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
233 additions
and
6 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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,172 @@ | ||
using System.Collections; | ||
using System.Collections.Generic; | ||
using NUnit.Framework; | ||
using UnityEngine; | ||
using UnityEngine.TestTools; | ||
|
||
namespace HouraiTeahouse.Networking { | ||
|
||
public class LocalLobbyTests { | ||
|
||
[Test] | ||
public void LocalLobby_Create() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
Assert.AreEqual(id, lobbyView.Id, "Lobby ID must be the same"); | ||
Assert.AreEqual(ownerId, lobbyView.OwnerId, "Lobby view ID must be the same"); | ||
Assert.AreEqual(ownerId, lobbyView.UserId, "Lobby view user ID must be the same"); | ||
Assert.AreEqual(1, lobbyView.MemberCount, "Lobby view user ID must be the same"); | ||
Assert.AreEqual(capacity, lobbyView.Capacity, "Lobby view capacity must be the same"); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_CreateViewDoesNotTriggerEvents() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
lobbyView.OnMemberJoin += (member) => Assert.Fail("OnMemberJoin should not be called"); | ||
lobbyView.OnMemberLeave += (member) => Assert.Fail("OnMemberLeave should not be called"); | ||
lobbyView.BaseLobby.CreateView(450); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_JoinTriggersOnMemberJoin() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
var triggered = false; | ||
lobbyView.OnMemberJoin += (member) => triggered = true; | ||
lobbyView.OnMemberLeave += (member) => Assert.Fail("OnMemberLeave should not be called"); | ||
var remote = lobbyView.BaseLobby.CreateView(450); | ||
remote.Join().Wait(); | ||
Assert.IsTrue(triggered); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_LeaveTriggersOnMemberLeave() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
var triggered = false; | ||
lobbyView.OnMemberLeave += (member) => triggered = true; | ||
var remote = lobbyView.BaseLobby.CreateView(450); | ||
remote.Join().Wait(); | ||
remote.Leave(); | ||
Assert.IsTrue(triggered); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_SetMetadataUpdatesEveryone() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
const string key = "key"; | ||
const string value = "value"; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
var triggered = false; | ||
lobbyView.OnUpdated += () => triggered = true; | ||
var remote = lobbyView.BaseLobby.CreateView(450); | ||
remote.Join().Wait(); | ||
lobbyView.SetMetadata(key, value); | ||
Assert.AreEqual(value, remote.GetMetadata(key)); | ||
Assert.IsTrue(triggered); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_SetMetadataDoesntUpdate() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
const string key = "key"; | ||
const string value = "value"; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
var triggered = false; | ||
var remote = lobbyView.BaseLobby.CreateView(450); | ||
remote.Join().Wait(); | ||
lobbyView.SetMetadata(key, value); | ||
lobbyView.OnUpdated += () => triggered = true; | ||
lobbyView.SetMetadata(key, value); | ||
Assert.AreEqual(value, remote.GetMetadata(key)); | ||
Assert.IsFalse(triggered); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_DeleteMetadataUpdatesEveryone() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
const string key = "key"; | ||
const string value = "value"; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
var triggered = false; | ||
lobbyView.OnUpdated += () => triggered = true; | ||
var remote = lobbyView.BaseLobby.CreateView(450); | ||
remote.Join().Wait(); | ||
lobbyView.SetMetadata(key, value); | ||
lobbyView.DeleteMetadata(key); | ||
Assert.AreEqual(string.Empty, remote.GetMetadata(key)); | ||
Assert.IsTrue(triggered); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_DeleteMetadataDoesntUpdate() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
const string key = "key"; | ||
const string value = "value"; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
var triggered = false; | ||
lobbyView.OnUpdated += () => triggered = true; | ||
var remote = lobbyView.BaseLobby.CreateView(450); | ||
remote.Join().Wait(); | ||
lobbyView.DeleteMetadata(key); | ||
Assert.AreEqual(string.Empty, remote.GetMetadata(key)); | ||
Assert.IsFalse(triggered); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_SetMemberMetadataUpdatesEveryone() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
const string key = "key"; | ||
const string value = "value"; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
ulong updatedId = 0; | ||
lobbyView.OnMemberUpdated+= (mem) => updatedId = mem.Id; | ||
var remote = lobbyView.BaseLobby.CreateView(450); | ||
remote.Join().Wait(); | ||
var member = lobbyView.Members.Get(remote.UserId); | ||
member.SetMetadata(key, value); | ||
Assert.AreEqual(value, remote.Members.Get(remote.UserId).GetMetadata(key)); | ||
Assert.AreEqual(updatedId, remote.UserId); | ||
} | ||
|
||
[Test] | ||
public void LocalLobby_DeleteMemberMetadataUpdatesEveryone() { | ||
const ulong id = 69; | ||
const ulong ownerId = 400; | ||
const int capacity = 4; | ||
const string key = "key"; | ||
const string value = "value"; | ||
var lobbyView = LocalLobby.Create(id, capacity, ownerId); | ||
ulong updatedId = 0; | ||
lobbyView.OnMemberUpdated+= (mem) => updatedId = mem.Id; | ||
var remote = lobbyView.BaseLobby.CreateView(450); | ||
remote.Join().Wait(); | ||
var member = lobbyView.Members.Get(remote.UserId); | ||
member.SetMetadata(key, value); | ||
member.DeleteMetadata(key); | ||
Assert.AreEqual(string.Empty, remote.Members.Get(remote.UserId).GetMetadata(key)); | ||
Assert.AreEqual(updatedId, remote.UserId); | ||
} | ||
|
||
} | ||
|
||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
17 changes: 17 additions & 0 deletions
17
Tests/Runtime/com.houraiteahouse.networking.Editor.Tests.asmdef
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
{ | ||
"name": "com.houraiteahouse.networking.EditorTests", | ||
"references": [ | ||
"GUID:4487c07f4904b9441a8796ba81d3a533" | ||
], | ||
"includePlatforms": [ | ||
"Editor" | ||
], | ||
"excludePlatforms": [], | ||
"allowUnsafeCode": false, | ||
"overrideReferences": false, | ||
"precompiledReferences": [], | ||
"autoReferenced": true, | ||
"defineConstraints": [], | ||
"versionDefines": [], | ||
"noEngineReferences": false | ||
} |
7 changes: 7 additions & 0 deletions
7
Tests/Runtime/com.houraiteahouse.networking.Editor.Tests.asmdef.meta
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.