コード例 #1
0
        public void CreateHappyTest()
        {
            var origin = new Origin()
            {
                Id = 12, Name = "Banana"
            };
            var mockRepo = new Mock <IPlantBreedingRepo>();

            var controller = new OriginsController(mockRepo.Object);

            var response = controller.Create(origin) as RedirectToRouteResult;

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.RouteValues);
            Assert.AreEqual("Index", response.RouteValues["action"]);
        }
コード例 #2
0
        public void CreateWithBadSessionTest()
        {
            var origin = new Origin()
            {
                Id = 12, Name = "Banana"
            };
            var mockRepo = new Mock <IPlantBreedingRepo>();

            var controller = new OriginsController(mockRepo.Object);

            controller.ModelState.AddModelError("test", "play them off, keyboard cat");

            var response = controller.Create(origin) as ViewResult;

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Model);
            Assert.IsNotNull(response.Model as Origin);

            var actual = response.Model as Origin;

            Assert.AreEqual(origin, actual);
        }
コード例 #3
0
        public void OriginCRUDTest()
        {
            var account     = App.Config.Content.ContentProviders[0].MediaServicesSets[0].MediaServicesAccounts[0];
            var controller  = new OriginsController();
            var context     = account.GetContext();
            int originCount = context.StreamingEndpoints.Count();
            var name        = string.Format("New-Origin-{0}", DateTime.UtcNow.ToOADate().ToString().Replace(".", "-"));
            var settings    = new Models.OriginSettings
            {
                Name = name
            };
            var operation = controller.Create(account.AccountName, settings);

            while (operation.State == OperationState.InProgress)
            {
                Thread.Sleep(10000);
                operation = context.Operations.GetOperation(operation.Id);
            }
            Assert.AreEqual(originCount + 1, context.StreamingEndpoints.Count());

            var origin = context.StreamingEndpoints.ToList().First(o => o.Name == name);

            var range = new Models.IPRange
            {
                SubnetPrefixLength = 32,
                Address            = "127.0.0.1"
            };

            //update the channel.
            var updateSettings = new Models.OriginUpdateSettings
            {
                AllowList   = new Models.IPRange[] { range },
                Description = "SomeDescription"
            };

            operation = controller.Update(account.AccountName, origin.Id.NimbusIdToRawGuid(), updateSettings);
            while (operation.State == OperationState.InProgress)
            {
                Thread.Sleep(10000);
                operation = context.Operations.GetOperation(operation.Id);
            }

            // create new context to avoid cache issue.
            context = account.GetContext();
            origin  = context.StreamingEndpoints.Where(o => o.Id == origin.Id).FirstOrDefault();
            Assert.IsNotNull(origin);

            Assert.AreEqual(updateSettings.Description, origin.Description);

            // verify access control.
            Assert.AreEqual(1, origin.AccessControl.IPAllowList.Count);
            Assert.AreEqual("Range0", origin.AccessControl.IPAllowList[0].Name);
            Assert.AreEqual(range.SubnetPrefixLength, origin.AccessControl.IPAllowList[0].SubnetPrefixLength);
            Assert.AreEqual(range.Address, origin.AccessControl.IPAllowList[0].Address);

            operation = controller.Delete(account.AccountName, origin.Id.NimbusIdToRawGuid());
            while (operation.State == OperationState.InProgress)
            {
                Thread.Sleep(10000);
                operation = context.Operations.GetOperation(operation.Id);
            }
            Assert.AreEqual(originCount, context.StreamingEndpoints.Count());
        }