public void UpdateClientProcedure_ClientArrivalNotificationClientSide_UpdatesUXAboutChanges() { int dataSize = 10; // SessionData After adding new user SessionData sData = Utils.GenerateSampleSessionData(dataSize); // The new user is removed as it wont be present before joining UserData newUser = sData.users[dataSize - 1]; sData.users.RemoveAt(dataSize - 1); // When the old user joins the first time, it would recieve complete session object ServerToClientData serverToClientData = new("addClient", sData, null, sData.users[dataSize - 2]);;; clientSessionManagerA.OnDataReceived(_serializer.Serialize <ServerToClientData>(serverToClientData)); oldUX.gotNotified = false; // Following are recieved when new user joins for old and new users sData.AddUser(newUser); ServerToClientData serverToClientDataNew = new("addClient", sData, null, sData.users[dataSize - 1]); string serialisedDataNew = _serializer.Serialize(serverToClientDataNew); //Console.WriteLine("MT: " + serialisedDataNew); clientSessionManagerB.OnDataReceived(serialisedDataNew); clientSessionManagerA.OnDataReceived(_serializer.Serialize(serverToClientDataNew)); //while (newUX.gotNotified == false) ; //while (oldUX.gotNotified == false) ; Assert.NotNull(oldUX.sessionData); Assert.NotNull(newUX.sessionData); CollectionAssert.AreEqual(sData.users, oldUX.sessionData.users); CollectionAssert.AreEqual(sData.users, newUX.sessionData.users); }