agones.dev/agones@v1.54.0/sdks/unity/Tests/Runtime/PlayMode/AgonesSdkIntegrationTests.cs (about) 1 // Copyright 2024 Google LLC 2 // All Rights Reserved. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 16 using System.Collections; 17 using NUnit.Framework; 18 using UnityEngine; 19 using UnityEngine.TestTools; 20 using Agones; 21 using System.Threading.Tasks; 22 using System; 23 24 namespace Tests.Runtime.Agones 25 { 26 public class AgonesSdkIntegrationTests 27 { 28 29 private AgonesSdk sdk; 30 private AgonesBetaSdk betaSdk; 31 private AgonesAlphaSdk alphaSdk; 32 33 [UnitySetUp] 34 public IEnumerator UnitySetUp() 35 { 36 GameObject gameObject = new GameObject(); 37 yield return null; 38 39 this.sdk = gameObject.AddComponent<AgonesSdk>(); 40 this.betaSdk = gameObject.AddComponent<AgonesBetaSdk>(); 41 this.alphaSdk = gameObject.AddComponent<AgonesAlphaSdk>(); 42 43 Assert.IsNotNull(this.sdk); 44 Assert.IsNotNull(this.betaSdk); 45 Assert.IsNotNull(this.alphaSdk); 46 } 47 48 [UnityTest] 49 public IEnumerator TestSdk() 50 { 51 var task = RunSdkTests(); 52 yield return new WaitUntil(() => task.IsCompleted); 53 54 if (task.Exception != null) 55 { 56 Debug.LogError(task.Exception); 57 Assert.Fail(); 58 } 59 } 60 61 private async Task RunSdkTests() 62 { 63 var connected = await this.sdk.Connect(); 64 Assert.IsTrue(connected); 65 66 bool hasReceivedUpdates = false; 67 this.sdk.WatchGameServer((gs) => 68 { 69 hasReceivedUpdates = true; 70 Assert.NotNull(gs.ObjectMeta); 71 Assert.NotNull(gs.Status); 72 Assert.NotNull(gs.Spec); 73 }); 74 75 // Run tests 76 var ready = await this.sdk.Ready(); 77 Assert.IsTrue(ready); 78 79 var setLabel = await this.sdk.SetLabel("label", "test_label"); 80 Assert.IsTrue(setLabel); 81 82 var setAnnotation = await this.sdk.SetAnnotation("annotation", "test_annotation"); 83 Assert.IsTrue(setAnnotation); 84 85 var reserved = await this.sdk.Reserve(TimeSpan.FromSeconds(5)); 86 Assert.IsTrue(reserved); 87 88 await Task.Delay(1000); 89 90 var allocated = await this.sdk.Allocate(); 91 Assert.IsTrue(allocated); 92 93 // Run beta tests 94 await this.RunBetaSdkTests(); 95 96 Assert.IsTrue(hasReceivedUpdates); 97 98 // Shutdown 99 var shutdown = await this.sdk.Shutdown(); 100 Assert.IsTrue(shutdown); 101 } 102 103 private async Task RunBetaSdkTests() 104 { 105 // LocalSDKServer starting "rooms": {Count: 1, Capacity: 10} 106 // Counters 107 string counter = "rooms"; 108 109 var countSet = await this.betaSdk.SetCounterCount(counter, 4); 110 Assert.IsTrue(countSet); 111 112 var counterValue = await this.betaSdk.GetCounterCount(counter); 113 Assert.AreEqual(4, counterValue); 114 115 var incremented = await this.betaSdk.IncrementCounter(counter, 2); 116 Assert.IsTrue(incremented); 117 118 var incrementedValue = await this.betaSdk.GetCounterCount(counter); 119 Assert.AreEqual(6, incrementedValue); 120 121 var decremented = await this.betaSdk.DecrementCounter(counter, 1); 122 Assert.IsTrue(decremented); 123 124 var decrementedValue = await this.betaSdk.GetCounterCount(counter); 125 Assert.AreEqual(5, decrementedValue); 126 127 var setCounterCapacity = await this.betaSdk.SetCounterCapacity(counter, 123); 128 Assert.IsTrue(setCounterCapacity); 129 130 var counterCapacity = await this.betaSdk.GetCounterCapacity(counter); 131 Assert.AreEqual(123, counterCapacity); 132 133 // LocalSDKServer starting "players": {Values: []string{"test0", "test1", "test2"}, Capacity: 100}} 134 // Lists 135 string list = "players"; 136 137 var listSet = await this.betaSdk.AppendListValue(list, "test123"); 138 Assert.IsTrue(listSet); 139 140 var listValues = await this.betaSdk.GetListValues(list); 141 Assert.NotNull(listValues); 142 Assert.AreEqual(4, listValues.Count); 143 Assert.AreEqual("test123", listValues[3]); 144 145 var listSize = await this.betaSdk.GetListLength(list); 146 Assert.AreEqual(4, listSize); 147 148 var setCapacity = await this.betaSdk.SetListCapacity(list, 25); 149 Assert.IsTrue(setCapacity); 150 151 var capacity = await this.betaSdk.GetListCapacity(list); 152 Assert.AreEqual(25, capacity); 153 154 var removedValue = await this.betaSdk.DeleteListValue(list, "test123"); 155 Assert.IsTrue(removedValue); 156 157 var removedValue2 = await this.betaSdk.DeleteListValue(list, "test0"); 158 Assert.IsTrue(removedValue2); 159 160 var newSize = await this.betaSdk.GetListLength(list); 161 Assert.AreEqual(2, newSize); 162 } 163 } 164 }