Example #1
0
        public InboxView(InboxController controller)
        {
            _controller = controller;
            InitializeComponent();

            _toProject.Enabled = false;
        }
        private async Task PostNotificationHelper(InboxController controller, Stream inputStream = null, int lifetimeInMinutes = 10)
        {
            SetupNextRequest(controller, "POST", inputStream);

            var result = await controller.PostNotificationAsync(this.inboxId, lifetimeInMinutes);

            Assert.That(result, Is.InstanceOf <EmptyResult>());
        }
Example #3
0
        private async Task PostNotificationHelper(InboxController controller, Stream inputStream = null, int lifetimeInMinutes = 10)
        {
            SetupNextRequest(controller, "POST", inputStream);

            var result = await controller.PostNotificationAsync(this.inboxId, lifetimeInMinutes);

            Assert.IsType(typeof(HttpStatusCodeResult), result);
            var actualStatus = (HttpStatusCode)((HttpStatusCodeResult)result).StatusCode;

            Assert.Equal(HttpStatusCode.Created, actualStatus);
        }
Example #4
0
        public static void RegisterConfiguration()
        {
            var storage        = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings[DefaultCloudConfigurationName].ConnectionString);
            var initialization = Task.WhenAll(
                BlobController.OneTimeInitializeAsync(storage),
                InboxController.OneTimeInitializeAsync(storage),
                WindowsPushNotificationClientController.OneTimeInitializeAsync(storage),
                AddressBookController.OneTimeInitializeAsync(storage));

            initialization.Wait();
        }
Example #5
0
        public void SetUp()
        {
            AzureStorageConfig.RegisterConfiguration();

            var testContainerName = "unittests" + Guid.NewGuid().ToString();
            var testTableName     = "unittests" + Guid.NewGuid().ToString().Replace("-", string.Empty);
            var account           = CloudStorageAccount.DevelopmentStorageAccount;
            var client            = account.CreateCloudBlobClient();

            this.tableClient = account.CreateCloudTableClient();
            this.tableClient.GetTableReference(testTableName).CreateIfNotExists();
            this.container = client.GetContainerReference(testContainerName);
            this.container.CreateContainerWithPublicBlobsIfNotExistAsync();
            this.controller = new InboxControllerForTest(this.container.Name, testTableName, CloudConfigurationName);
        }
Example #6
0
        // ---------------------------------- Utility ----------------------------------
        private (WebmailContext, InboxController) CreateTestTools(string name)
        {
            var context        = CreateTestContext(name);
            var messageService = new SqlMessageService(context);
            var controller     = new InboxController(new SqlUserService(context, messageService), messageService)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext {
                        User = new ClaimsPrincipal()
                    }
                }
            };

            return(context, controller);
        }
Example #7
0
        public void PurgeExpiredAsync()
        {
            this.container.CreateIfNotExists();

            var expiredBlob = this.container.GetBlockBlobReference(Utilities.CreateRandomWebSafeName(5));

            expiredBlob.UploadFromStream(new MemoryStream(Encoding.ASCII.GetBytes("some content")));
            expiredBlob.Metadata[InboxController.ExpirationDateMetadataKey] = (DateTime.UtcNow - TimeSpan.FromDays(1)).ToString();
            expiredBlob.SetMetadata();

            var freshBlob = this.container.GetBlockBlobReference(Utilities.CreateRandomWebSafeName(5));

            freshBlob.UploadFromStream(new MemoryStream(Encoding.ASCII.GetBytes("some more content")));
            freshBlob.Metadata[InboxController.ExpirationDateMetadataKey] = (DateTime.UtcNow + TimeSpan.FromDays(1)).ToString();
            freshBlob.SetMetadata();

            InboxController.PurgeExpiredAsync(this.container).GetAwaiter().GetResult();

            Assert.False(expiredBlob.DeleteIfExists());
            Assert.True(freshBlob.DeleteIfExists());
        }
Example #8
0
        private static void SetupNextRequest(InboxController controller, string httpMethod, Stream inputStream = null, NameValueCollection form = null)
        {
            Requires.NotNull(controller, "controller");
            inputStream = inputStream ?? new MemoryStream(new byte[] { 0x1, 0x3, 0x2 });

            var request = new Mock <HttpRequestBase>();

            request.SetupGet(r => r.InputStream).Returns(inputStream);
            request.SetupGet(r => r.HttpMethod).Returns(httpMethod);
            request.SetupGet(r => r.ContentLength).Returns((int)inputStream.Length);
            request.SetupGet(r => r.Form).Returns(form ?? new NameValueCollection());

            var httpContext = new Mock <HttpContextBase>();

            httpContext.SetupGet(c => c.Request).Returns(request.Object);

            var controllerContext = new Mock <ControllerContext>();

            controllerContext.SetupGet(cc => cc.HttpContext).Returns(httpContext.Object);

            controller.ControllerContext = controllerContext.Object;
        }
 public InboxControllerTest()
 {
     _inboxService    = new Mock <IInboxService>();
     _inboxController = CreateInboxController(_inboxService.Object);
 }