public void AddOrUpdateUserTest() { 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); string userID = Guid.NewGuid().ToString(); UserProfile userFirstVersion = new UserProfile() { Id = userID, DisplayName = "John" }; target.AddOrUpdateUser(userFirstVersion); Assert.AreEqual(userFirstVersion, target.GetUser(userID)); UserProfile otherUser = new UserProfile() { Id = Guid.NewGuid().ToString(), DisplayName = "Peter" }; target.AddOrUpdateUser(otherUser); Assert.AreEqual(otherUser, target.GetUser(otherUser.Id)); UserProfile userSecondVersion = new UserProfile() { Id = userID, DisplayName = "Johny" }; Assert.AreEqual(userSecondVersion, target.GetUser(userID)); }
public async Task <byte[]> GetFileAsync(HostConfig host, string file) { try { AzureBlobContainer container = new AzureBlobContainer(host, file); BlobServiceClient serviceClient = new BlobServiceClient(ConnectionString); var containerClient = serviceClient.GetBlobContainerClient(container.ContainerClientName); if (!await containerClient.ExistsAsync()) { throw new FileNotFoundException(file); } var blobClient = containerClient.GetBlobClient(container.BlobClientName); if (!await blobClient.ExistsAsync()) { throw new FileNotFoundException(file); } using var stream = new MemoryStream(); var download = await blobClient.DownloadAsync(); await download.Value.Content.CopyToAsync(stream); return(stream.GetBuffer()); } catch (Exception) { throw; } }
public void Setup() { var account = CloudStorageAccount.DevelopmentStorageAccount; var container = new AzureBlobContainer<NotificationStatus>(account, ConfigurationConstants.NotificationsContainerName + "test", true); this.repository = new NotificationRepository(container); this.command = new GameActionNotificationCommand(this.repository); }
public static void Initialize(TestContext context) { account = CloudStorageAccount.Parse("UseDevelopmentStorage=true"); var surveyStorage = new AzureBlobContainer <Survey>(account, SurveyContainer); surveyStorage.EnsureExistsAsync().Wait(); }
private async Task AppendSurveyAnswerIdToSurveyAnswerListAsync(string slugName, string surveyAnswerId) { var SurveyAnswersListContainerName = "surveyanswerslist"; if (string.IsNullOrWhiteSpace(slugName)) { throw new ArgumentException($"{nameof(slugName)} cannot be null, empty, or only whitespace"); } if (string.IsNullOrWhiteSpace(surveyAnswerId)) { throw new ArgumentException($"{nameof(surveyAnswerId)} cannot be null, empty, or only whitespace"); } var answerListContainer = new AzureBlobContainer <List <string> >( ServiceFabricConfiguration.GetCloudStorageAccount(), SurveyAnswersListContainerName); try { await SaveAsync(answerListContainer, slugName, surveyAnswerId); } catch (StorageException ex) { if (ex.Message.Contains("404")) { await answerListContainer.EnsureExistsAsync(); await SaveAsync(answerListContainer, slugName, surveyAnswerId); } else { throw ex; } } }
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 AddOrUpdateUserWithNullUserTest() { 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); target.AddOrUpdateUser(null); }
public static void Cleanup() { var azureBlobContainer = new AzureBlobContainer <string>( account, AzureBlobTestContainer); azureBlobContainer.DeleteContainerAsync().Wait(); }
private static IAzureBlobContainer <byte[]> GetBlobContainer(CloudStorageAccount account, string containerName) { var container = new AzureBlobContainer <byte[]>(account, containerName); container.EnsureExist(); return(container); }
public void Setup() { var account = CloudStorageAccount.DevelopmentStorageAccount; var container = new AzureBlobContainer <NotificationStatus>(account, ConfigurationConstants.NotificationsContainerName + "test", true); this.repository = new NotificationRepository(container); this.command = new GameActionNotificationCommand(this.repository); }
public void GetUserWithEmptyIdTest() { 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); target.GetUser(string.Empty); }
public void AddOrUpdateUserWithNullUserTest() { 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); target.AddOrUpdateUser(null); }
public static void Initialize(TestContext context) { account = CloudStorageAccount.Parse("UseDevelopmentStorage=true"); var azureBlobContainer = new AzureBlobContainer <string>( account, AzureBlobTestContainer); azureBlobContainer.EnsureExistsAsync().Wait(); }
public void GetUserTest() { 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); Assert.IsNull(target.GetUser(Guid.NewGuid().ToString())); }
public async Task GetReturnsNullWhenItDoesNotExist() { var storage = new AzureBlobContainer <object>(account, SurveyContainer); var nonExistingObject = "id-for-non-existing-object"; object actualObject = await storage.GetAsync(nonExistingObject); Assert.IsNull(actualObject); }
public CertificateRepository(AzureTable<CertificateRow> certificateTable, AzureBlobContainer<byte[]> certificateBlobContainer, IWebSiteRepository webSiteRepository) { this.certificateTable = certificateTable; this.certificateBlobContainer = certificateBlobContainer; this.certificateTable.CreateIfNotExist(); this.certificateBlobContainer.EnsureExist(); this.webSiteRepository = webSiteRepository; }
public void TestUri() { CloudBlobContainer container = _blobClient.GetContainerReference("container"); container.CreateIfNotExists(); AzureBlobContainer azureBlobContainer = new AzureBlobContainer(container); Assert.AreEqual(container.Uri.ToString(), azureBlobContainer.Uri); }
public void TestJoningAndLeavingGameQueues() { FixedTimeProvider timeProvider = new FixedTimeProvider(); TimeProvider.Current = timeProvider; DateTime startingDateTime = DateTime.Parse("01/01/2001 00:00:00"); timeProvider.CurrentDateTime = startingDateTime; CloudStorageAccount cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount; IGameRepository gameRepository = new GameRepository(null, null, null, null, null, null); UserProfile firstUser = new UserProfile() { Id = Guid.NewGuid().ToString(), DisplayName = "John" }; UserProfile secondUser = new UserProfile() { Id = Guid.NewGuid().ToString(), DisplayName = "Peter" }; var users = new AzureBlobContainer<UserProfile>(CloudStorageAccount.DevelopmentStorageAccount); var sessions = new AzureBlobContainer<UserSession>(CloudStorageAccount.DevelopmentStorageAccount); var friends = new AzureBlobContainer<Friends>(CloudStorageAccount.DevelopmentStorageAccount); var userRepository = new UserRepository(users, sessions, friends); userRepository.AddOrUpdateUser(firstUser); userRepository.AddOrUpdateUser(secondUser); gameRepository.AddUserToSkirmishGameQueue(firstUser); GameQueue gameQueue = null; //// gameQueue = MagicallyGetGameQueues(); Assert.AreEqual(gameQueue, new Game { CreationTime = startingDateTime, Id = gameQueue.Id, Users = new List<GameUser> { new GameUser { UserId = firstUser.Id } } }); Assert.AreEqual(gameQueue.TimeElapsed(), 60); timeProvider.CurrentDateTime = startingDateTime.AddSeconds(10); Assert.AreEqual(gameQueue.TimeElapsed(), 50); gameRepository.AddUserToSkirmishGameQueue(secondUser); //// gameQueue = MagicallyGetGameQueues(); Assert.AreEqual(gameQueue, new Game { CreationTime = startingDateTime, Id = gameQueue.Id, Users = new List<GameUser> { new GameUser { UserId = firstUser.Id }, new GameUser { UserId = secondUser.Id } } }); Assert.AreEqual(gameQueue.TimeElapsed(), 50); timeProvider.CurrentDateTime = startingDateTime.AddSeconds(20); Assert.AreEqual(gameQueue, new Game { CreationTime = startingDateTime, Id = gameQueue.Id, Users = new List<GameUser> { new GameUser { UserId = firstUser.Id }, new GameUser { UserId = secondUser.Id } } }); Assert.AreEqual(gameQueue.TimeElapsed(), 40); // gameRepository.RemoveUserFromGameQueue(firstUser, gameQueue, "Bored"); // gameQueue = MagicallyGetGameQueues(); Assert.AreEqual(gameQueue, new Game { CreationTime = startingDateTime, Id = gameQueue.Id, Users = new List<GameUser> { new GameUser { UserId = secondUser.Id } } }); Assert.AreEqual(gameQueue.TimeElapsed(), 40); timeProvider.CurrentDateTime = startingDateTime.AddSeconds(30); Assert.AreEqual(gameQueue.TimeElapsed(), 30); // gameRepository.RemoveUserFromGameQueue(secondUser, gameQueue, "Also Bored"); // gameQueue = MagicallyGetGameQueues(); Assert.AreEqual(gameQueue, new Game { CreationTime = startingDateTime, Id = gameQueue.Id, Users = new List<GameUser>() }); }
public NestleDatabaseServer() { XDocument configuration = XDocument.Load("StorageConfiguration.xml"); string account = configuration.Root.Element("account").Value; string key = configuration.Root.Element("key").Value; string container = configuration.Root.Element("container").Value; this.blobServer = AzureStorageFacade.ConnectBlobServer(AzureStorageFacade.CreateConnectionString(account, key)); this.Bodies = this.blobServer["nestle-topic-comment-bodies"]; this.Bodies.CreateContainerIfNotExist().Sync(); }
public async Task SaveShouldStoreTheBlob() { var objId = Guid.NewGuid().ToString(); var azureBlobContainer = new AzureBlobContainer <string>( account, AzureBlobTestContainer); await azureBlobContainer.SaveAsync(objId, "testText"); Assert.IsNotNull(await azureBlobContainer.GetAsync(objId)); }
private async Task SaveAsync(AzureBlobContainer <List <string> > answerListContainer, string slugName, string surveyAnswerId) { // NOTE: appending ID's into a blob doesn't scale well under heavy load. Other solution is left // for the reader to implement. var answerIdList = await answerListContainer.GetAsync(slugName) .ConfigureAwait(false) ?? new List <string>(); answerIdList.Add(surveyAnswerId); await answerListContainer.SaveAsync(slugName, answerIdList) .ConfigureAwait(false); }
public void TestName() { const string containerName = "container"; CloudBlobContainer container = _blobClient.GetContainerReference(containerName); container.CreateIfNotExists(); AzureBlobContainer azureBlobContainer = new AzureBlobContainer(container); Assert.AreEqual(containerName, azureBlobContainer.Name); }
public void GetUriReturnsContainerUrl() { var objId = Guid.NewGuid().ToString(); var azureBlobContainer = new AzureBlobContainer <string>( account, AzureBlobTestContainer); Assert.AreEqual($"http://127.0.0.1:10000/devstoreaccount1/{AzureBlobTestContainer}/{objId}", azureBlobContainer.GetUri(objId).ToString()); }
public async Task TestGetDirectory() { CloudBlobContainer container = _blobClient.GetContainerReference("container"); container.CreateIfNotExists(); await CreateNonEmptyDirectory(container, "dir1"); AzureBlobContainer azureBlobContainer = new AzureBlobContainer(container); Assert.AreEqual("dir1", (await azureBlobContainer.GetDirectory("dir1")).Name); }
public async Task TestGetFile() { CloudBlobContainer container = _blobClient.GetContainerReference("container"); container.CreateIfNotExists(); await CreateEmptyBlob(container.GetBlockBlobReference("blob1")); AzureBlobContainer azureBlobContainer = new AzureBlobContainer(container); Assert.AreEqual("blob1", (await azureBlobContainer.GetFile("blob1")).Name); }
public void GameRepositoryConstructor() { IAzureBlobContainer <Game> gameContainer = new AzureBlobContainer <Game>(this.cloudStorageAccount); IAzureQueue <SkirmishGameQueueMessage> skirmishGameMessageQueue = new AzureQueue <SkirmishGameQueueMessage>(this.cloudStorageAccount, skirmishGameMessageQueueName); IAzureQueue <LeaveGameMessage> leaveGameMessageQueue = new AzureQueue <LeaveGameMessage>(this.cloudStorageAccount, leaveGameMessageQueueName); ExceptionAssert.ShouldThrow <ArgumentNullException>(() => new GameRepository(null, null, null, null, null, null)); ExceptionAssert.ShouldThrow <ArgumentNullException>(() => new GameRepository(gameContainer, null, null, null, null, null)); ExceptionAssert.ShouldThrow <ArgumentNullException>(() => new GameRepository(null, null, skirmishGameMessageQueue, null, null, null)); ExceptionAssert.ShouldThrow <ArgumentNullException>(() => new GameRepository(null, null, null, leaveGameMessageQueue, null, null)); ExceptionAssert.ShouldThrow <ArgumentNullException>(() => new GameRepository(null, null, skirmishGameMessageQueue, leaveGameMessageQueue, null, null)); ExceptionAssert.ShouldThrow <ArgumentNullException>(() => new GameRepository(gameContainer, null, null, leaveGameMessageQueue, null, null)); ExceptionAssert.ShouldThrow <ArgumentNullException>(() => new GameRepository(gameContainer, null, skirmishGameMessageQueue, null, null, null)); }
public async Task TestExists() { CloudBlobContainer container = _blobClient.GetContainerReference("container"); container.CreateIfNotExists(); await CreateEmptyBlob(container.GetBlockBlobReference("blob1")); AzureBlobContainer azureBlobContainer = new AzureBlobContainer(container); Assert.IsTrue(await azureBlobContainer.Exists()); container.Delete(); Assert.IsFalse(await azureBlobContainer.Exists()); }
public void InitializeGameRepository() { this.cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount; this.skirmishGameMessageQueue = new AzureQueue <SkirmishGameQueueMessage>(this.cloudStorageAccount, skirmishGameMessageQueueName); this.leaveGameMessageQueue = new AzureQueue <LeaveGameMessage>(this.cloudStorageAccount, leaveGameMessageQueueName); this.gameContainer = new AzureBlobContainer <Game>(this.cloudStorageAccount, gameContainerName, true); this.gameQueueContainer = new AzureBlobContainer <GameQueue>(this.cloudStorageAccount, gameQueueContainerName, true); this.userContainer = new AzureBlobContainer <UserProfile>(this.cloudStorageAccount, userContainerName, true); this.inviteQueue = new AzureQueue <InviteMessage>(this.cloudStorageAccount, inviteQueueName); this.gameRepository = new GameRepository(this.gameContainer, this.gameQueueContainer, this.skirmishGameMessageQueue, this.leaveGameMessageQueue, this.userContainer, this.inviteQueue); this.gameRepository.Initialize(); this.skirmishGameMessageQueue.Clear(); this.leaveGameMessageQueue.Clear(); }
public void Setup() { int suffix = (new Random()).Next(10000); var account = CloudStorageAccount.DevelopmentStorageAccount; this.notificationContainer = new AzureBlobContainer <NotificationStatus>(account, ConfigurationConstants.NotificationsContainerName + "test" + suffix, true); this.userContainer = new AzureBlobContainer <UserProfile>(account, ConfigurationConstants.UsersContainerName + "test" + suffix, true); this.userSessionContainer = new AzureBlobContainer <UserSession>(account, ConfigurationConstants.UserSessionsContainerName + "test" + suffix, true); this.friendsContainer = new AzureBlobContainer <Friends>(account, ConfigurationConstants.FriendsContainerName + "test" + suffix, true); this.notificationRepository = new NotificationRepository(this.notificationContainer); this.userRepository = new UserRepository(this.userContainer, this.userSessionContainer, this.friendsContainer); this.userRepository.Initialize(); this.command = new InviteCommand(this.notificationRepository, this.userRepository); }
public void Setup() { int suffix = (new Random()).Next(10000); var account = CloudStorageAccount.DevelopmentStorageAccount; this.notificationContainer = new AzureBlobContainer<NotificationStatus>(account, ConfigurationConstants.NotificationsContainerName + "test" + suffix, true); this.userContainer = new AzureBlobContainer<UserProfile>(account, ConfigurationConstants.UsersContainerName + "test" + suffix, true); this.userSessionContainer = new AzureBlobContainer<UserSession>(account, ConfigurationConstants.UserSessionsContainerName + "test" + suffix, true); this.friendsContainer = new AzureBlobContainer<Friends>(account, ConfigurationConstants.FriendsContainerName + "test" + suffix, true); this.notificationRepository = new NotificationRepository(this.notificationContainer); this.userRepository = new UserRepository(this.userContainer, this.userSessionContainer, this.friendsContainer); this.userRepository.Initialize(); this.command = new InviteCommand(this.notificationRepository, this.userRepository); }
public void LeaveUserFromGameTest() { Game game = this.FrancisGabrielDonAndLukeGame(); var francisUser = new UserProfile { Id = Guid.NewGuid().ToString(), DisplayName = "Francis" }; var users = new AzureBlobContainer <UserProfile>(CloudStorageAccount.DevelopmentStorageAccount); var sessions = new AzureBlobContainer <UserSession>(CloudStorageAccount.DevelopmentStorageAccount); var friends = new AzureBlobContainer <Friends>(CloudStorageAccount.DevelopmentStorageAccount); var userRepository = new UserRepository(users, sessions, friends); userRepository.AddOrUpdateUser(francisUser); this.gameRepository.AddOrUpdateGame(game); this.gameRepository.LeaveUserFromGame(francisUser.Id, game.Id); }
public void TestInitialize() { target = new SurveyManagementService(null, (tableName) => { var azureTable = new AzureTable <Models.SurveyInformationRow>(account, tableName); azureTable.EnsureExistsAsync().Wait(); return(azureTable); }, (containerName) => { azureBlobContainer = new AzureBlobContainer <Models.Survey>( account, containerName); azureBlobContainer.EnsureExistsAsync().Wait(); return(azureBlobContainer); }); }
public async Task TestFiles() { CloudBlobContainer container = _blobClient.GetContainerReference("container"); container.CreateIfNotExists(); await Task.WhenAll( CreateEmptyBlob(container.GetBlockBlobReference("blob1")), CreateEmptyBlob(container.GetBlockBlobReference("blob2"))); AzureBlobContainer azureBlobContainer = new AzureBlobContainer(container); IEnumerable <string> files = (await azureBlobContainer.ListFiles()).Select(d => d.Name); Assert.AreEqual(2, files.Count()); Assert.IsTrue(files.Contains("blob1")); Assert.IsTrue(files.Contains("blob2")); }
public async Task GetBlobListReturnsAllBlobsInContainer() { var objId1 = Guid.NewGuid().ToString(); var objId2 = Guid.NewGuid().ToString(); var azureBlobContainer = new AzureBlobContainer <string>( account, AzureBlobTestContainer); await azureBlobContainer.SaveAsync(objId1, "testText"); await azureBlobContainer.SaveAsync(objId2, "testText"); var blobList = azureBlobContainer.GetBlobList().Select(b => b.Name).ToList(); CollectionAssert.Contains(blobList, objId1); CollectionAssert.Contains(blobList, objId2); }
public async Task Create_Container_And_SaveToIt_Immetiately() { var blobContainer = new AzureBlobContainer(_context, "new-test-container"); try { var blobName = "test-blob"; var dataToUpload = "Some testing data"; await blobContainer.UploadStringAsync(blobName, dataToUpload); var downloadedData = await blobContainer.DownloadStringAsync(blobName); Assert.AreEqual(dataToUpload, downloadedData); } finally { await blobContainer.DeleteContainerAsync(); } }
public void AddOrUpdateUserTest() { 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); string userID = Guid.NewGuid().ToString(); UserProfile userFirstVersion = new UserProfile() { Id = userID, DisplayName = "John" }; target.AddOrUpdateUser(userFirstVersion); Assert.AreEqual(userFirstVersion, target.GetUser(userID)); UserProfile otherUser = new UserProfile() { Id = Guid.NewGuid().ToString(), DisplayName = "Peter" }; target.AddOrUpdateUser(otherUser); Assert.AreEqual(otherUser, target.GetUser(otherUser.Id)); UserProfile userSecondVersion = new UserProfile() { Id = userID, DisplayName = "Johny" }; Assert.AreEqual(userSecondVersion, target.GetUser(userID)); }
public override bool OnStart() { // For information on handling configuration changes // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. CloudStorageAccount.SetConfigurationSettingPublisher( (name, publisher) => { var connectionString = RoleEnvironment.GetConfigurationSettingValue(name); publisher(connectionString); } ); var account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString"); AzureQueue<UserRegistrationMessage> queue = new AzureQueue<UserRegistrationMessage>(account); queue.EnsureExist(); AzureBlobContainer<RegistrationTokenEntity> registrationBlob = new AzureBlobContainer<RegistrationTokenEntity>(account, true); registrationBlob.EnsureExist(); // We could do the 'worker role' portion here aslo //Task.Factory.StartNew(() => //{ // while (true) // { // try // { // var message = queue.GetMessage(); // if (message != null) // { // var entity = new RegistrationTokenEntity(); // entity.RegistrationToken = (new Random()).Next().ToString(); // registrationBlob.Save(message.ContainerId, entity); // queue.DeleteMessage(message); // } // } // catch { } // Thread.Sleep(5000); // } //}); return base.OnStart(); }
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 ActionResult Register(RegisterModel model) { AzureQueue<UserRegistrationMessage> queue = new AzureQueue<UserRegistrationMessage>(account); AzureBlobContainer<RegistrationTokenEntity> registrationBlob = new AzureBlobContainer<RegistrationTokenEntity>(account, true); var containerId = Guid.NewGuid().ToString(); registrationBlob.Save(containerId, new RegistrationTokenEntity { RegistrationToken = null, }); var blobContainer = registrationBlob.GetSharedAccessSignature(containerId, DateTime.Now.AddHours(1)); queue.AddMessage(new UserRegistrationMessage { DateOfBirth = model.DateOfBirth, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, ContainerId = containerId, }); return Json(new { container = blobContainer }); }
public override void Run() { // This is a sample worker implementation. Replace with your logic. Trace.WriteLine("WorkerRole1 entry point called", "Information"); CloudStorageAccount.SetConfigurationSettingPublisher( (name, publisher) => { var connectionString = RoleEnvironment.GetConfigurationSettingValue(name); publisher(connectionString); } ); var account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString"); AzureQueue<UserRegistrationMessage> queue = new AzureQueue<UserRegistrationMessage>(account); queue.EnsureExist(); AzureBlobContainer<RegistrationTokenEntity> registrationBlob = new AzureBlobContainer<RegistrationTokenEntity>(account, "registrationtoken", true); registrationBlob.EnsureExist(true); while (true) { try { var message = queue.GetMessage(); if (message != null) { var entity = new RegistrationTokenEntity(); entity.RegistrationToken = (new Random()).Next().ToString(); registrationBlob.Save(message.RegistratoinId, entity); queue.DeleteMessage(message); } } catch { } Thread.Sleep(5000); } }
public void InitializeGameRepository() { this.cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount; this.notificationsContainer = new AzureBlobContainer<NotificationStatus>(this.cloudStorageAccount, ConfigurationConstants.NotificationsContainerName + "test", true); this.notificationRepository = new NotificationRepository(this.notificationsContainer); }
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)); }
public void GameRepositoryConstructor() { IAzureBlobContainer<Game> gameContainer = new AzureBlobContainer<Game>(this.cloudStorageAccount); IAzureQueue<SkirmishGameQueueMessage> skirmishGameMessageQueue = new AzureQueue<SkirmishGameQueueMessage>(this.cloudStorageAccount, skirmishGameMessageQueueName); IAzureQueue<LeaveGameMessage> leaveGameMessageQueue = new AzureQueue<LeaveGameMessage>(this.cloudStorageAccount, leaveGameMessageQueueName); ExceptionAssert.ShouldThrow<ArgumentNullException>(() => new GameRepository(null, null, null, null, null, null)); ExceptionAssert.ShouldThrow<ArgumentNullException>(() => new GameRepository(gameContainer, null, null, null, null, null)); ExceptionAssert.ShouldThrow<ArgumentNullException>(() => new GameRepository(null, null, skirmishGameMessageQueue, null, null, null)); ExceptionAssert.ShouldThrow<ArgumentNullException>(() => new GameRepository(null, null, null, leaveGameMessageQueue, null, null)); ExceptionAssert.ShouldThrow<ArgumentNullException>(() => new GameRepository(null, null, skirmishGameMessageQueue, leaveGameMessageQueue, null, null)); ExceptionAssert.ShouldThrow<ArgumentNullException>(() => new GameRepository(gameContainer, null, null, leaveGameMessageQueue, null, null)); ExceptionAssert.ShouldThrow<ArgumentNullException>(() => new GameRepository(gameContainer, null, skirmishGameMessageQueue, null, null, null)); }
public void InitializeGameRepository() { this.cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount; this.skirmishGameMessageQueue = new AzureQueue<SkirmishGameQueueMessage>(this.cloudStorageAccount, skirmishGameMessageQueueName); this.leaveGameMessageQueue = new AzureQueue<LeaveGameMessage>(this.cloudStorageAccount, leaveGameMessageQueueName); this.gameContainer = new AzureBlobContainer<Game>(this.cloudStorageAccount, gameContainerName, true); this.gameQueueContainer = new AzureBlobContainer<GameQueue>(this.cloudStorageAccount, gameQueueContainerName, true); this.userContainer = new AzureBlobContainer<UserProfile>(this.cloudStorageAccount, userContainerName, true); this.inviteQueue = new AzureQueue<InviteMessage>(this.cloudStorageAccount, inviteQueueName); this.gameRepository = new GameRepository(this.gameContainer, this.gameQueueContainer, this.skirmishGameMessageQueue, this.leaveGameMessageQueue, this.userContainer, this.inviteQueue); this.gameRepository.Initialize(); this.skirmishGameMessageQueue.Clear(); this.leaveGameMessageQueue.Clear(); }
public void GetUserWithEmptyIdTest() { 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); target.GetUser(string.Empty); }
public void GetUserTest() { 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); Assert.IsNull(target.GetUser(Guid.NewGuid().ToString())); }
public void GetUserReferenceTimeOutTest() { 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); string userID = Guid.NewGuid().ToString(); UserProfile userFirstVersion = new UserProfile() { Id = userID, DisplayName = "John" }; target.AddOrUpdateUser(userFirstVersion); TimeSpan timeSpan = TimeSpan.FromSeconds(1); string address = target.GetUserReference(userID, timeSpan); System.Threading.Thread.Sleep(timeSpan.Add(TimeSpan.FromSeconds(1))); System.Net.WebClient webClient = new System.Net.WebClient(); string data = webClient.DownloadString(address); }
public void GetUserReferenceTest() { 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); var userID = Guid.NewGuid().ToString(); var userFirstVersion = new UserProfile() { Id = userID, DisplayName = "John" }; target.AddOrUpdateUser(userFirstVersion); string address = target.GetUserReference(userID, TimeSpan.FromSeconds(10)); var webClient = new WebClient(); string data = webClient.DownloadString(address); var serialized = this.Serialized(userFirstVersion, true); Assert.AreEqual("sgusers" + serialized, data); }
public void LeaveUserFromGameTest() { Game game = this.FrancisGabrielDonAndLukeGame(); var francisUser = new UserProfile { Id = Guid.NewGuid().ToString(), DisplayName = "Francis" }; var users = new AzureBlobContainer<UserProfile>(CloudStorageAccount.DevelopmentStorageAccount); var sessions = new AzureBlobContainer<UserSession>(CloudStorageAccount.DevelopmentStorageAccount); var friends = new AzureBlobContainer<Friends>(CloudStorageAccount.DevelopmentStorageAccount); var userRepository = new UserRepository(users, sessions, friends); userRepository.AddOrUpdateUser(francisUser); this.gameRepository.AddOrUpdateGame(game); this.gameRepository.LeaveUserFromGame(francisUser.Id, game.Id); }
public void Setup() { this.webSiteTable = new AzureTable<WebSiteRow>(CloudStorageAccount.DevelopmentStorageAccount, "WebSitesTest"); this.bindingTable = new AzureTable<BindingRow>(CloudStorageAccount.DevelopmentStorageAccount, "BindingsTest"); this.webSiteTable.CreateIfNotExist(); this.bindingTable.CreateIfNotExist(); this.webSiteRepository = new WebSiteRepository(this.webSiteTable, this.bindingTable); this.certificateTable = new AzureTable<CertificateRow>(CloudStorageAccount.DevelopmentStorageAccount, "CertificatesTest"); this.certificateTable.CreateIfNotExist(); this.certificateBlobContainer = new AzureBlobContainer<byte[]>(CloudStorageAccount.DevelopmentStorageAccount, "CertificatesTest"); this.certificateBlobContainer.EnsureExist(); this.certificateRepository = new CertificateRepository(this.certificateTable, this.certificateBlobContainer, this.webSiteRepository); }
private static IAzureBlobContainer<byte[]> GetBlobContainer(CloudStorageAccount account, string containerName) { var container = new AzureBlobContainer<byte[]>(account, containerName); container.EnsureExist(); return container; }