public void AddOrUpdateUserSessionTest() { var users = new AzureBlobContainer<UserProfile>(CloudStorageAccount.DevelopmentStorageAccount); var sessions = new AzureBlobContainer<UserSession>(CloudStorageAccount.DevelopmentStorageAccount); var friends = new AzureBlobContainer<Friends>(CloudStorageAccount.DevelopmentStorageAccount); var target = new UserRepository(users, sessions, friends); IAzureBlobContainer<UserSession> userSessionContainer = (IAzureBlobContainer<UserSession>) target.GetType().GetField("userSessionContainer", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(target); UserSession userSessionFirstVersion = new UserSession() { UserId = "johnny", ActiveGameQueueId = Guid.NewGuid() }; target.AddOrUpdateUserSession(userSessionFirstVersion); var result = userSessionContainer.Get(userSessionFirstVersion.UserId); Assert.AreEqual(userSessionFirstVersion, result); UserSession userSessionSecondVersion = new UserSession() { UserId = userSessionFirstVersion.UserId, ActiveGameQueueId = Guid.NewGuid() }; target.AddOrUpdateUserSession(userSessionSecondVersion); result = userSessionContainer.Get(userSessionFirstVersion.UserId); Assert.AreEqual(userSessionSecondVersion, result); Assert.AreNotEqual(userSessionFirstVersion, result); }
public void FailedAddOrUpdateUserSessionTest() { var users = new AzureBlobContainer<UserProfile>(CloudStorageAccount.DevelopmentStorageAccount); var sessions = new AzureBlobContainer<UserSession>(CloudStorageAccount.DevelopmentStorageAccount); var friends = new AzureBlobContainer<Friends>(CloudStorageAccount.DevelopmentStorageAccount); var target = new UserRepository(users, sessions, friends); UserSession userSessionFirstVersion = new UserSession() { UserId = null, ActiveGameQueueId = Guid.NewGuid() }; ExceptionAssert.ShouldThrow<ArgumentException>(() => target.AddOrUpdateUserSession(userSessionFirstVersion)); UserSession userSessionSecondVersion = new UserSession() { UserId = string.Empty, ActiveGameQueueId = Guid.NewGuid() }; ExceptionAssert.ShouldThrow<ArgumentException>(() => target.AddOrUpdateUserSession(userSessionSecondVersion)); }