コード例 #1
0
        public void DetailsHappyTest()
        {
            int?id       = 1;
            var expected = new Origin
            {
                Id   = 1,
                Name = "chacha"
            };

            var mockRepo = new Mock <IPlantBreedingRepo>();

            mockRepo.Setup(r => r.GetOrigin(id.Value)).Returns(expected);

            var controller = new OriginsController(mockRepo.Object);

            var response = controller.Details(id) as ViewResult;

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

            var actual = response.Model as Origin;

            Assert.AreEqual(expected, actual);
        }
コード例 #2
0
        public void IndexHappyTest()
        {
            IEnumerable <Origin> expected = new List <Origin>
            {
                new Origin
                {
                    Id   = 1,
                    Name = "orgrimmar"
                },
                new Origin
                {
                    Id   = 2,
                    Name = "stormwind"
                }
            };

            var mockRepo = new Mock <IPlantBreedingRepo>();

            mockRepo.Setup(r => r.GetOrigins()).Returns(expected);

            var controller = new OriginsController(mockRepo.Object);
            var response   = controller.Index() as ViewResult;

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Model as IEnumerable <Origin>);

            var actual = response.Model as IEnumerable <Origin>;

            Assert.IsTrue(Enumerable.SequenceEqual(actual, expected));
        }
コード例 #3
0
        public void StopOriginTest()
        {
            var account    = App.Config.GetDefaultAccount();
            var context    = account.GetContext();
            var controller = new OriginsController();
            var origins    = context.StreamingEndpoints.ToList();
            var origin     = origins.FirstOrDefault(p => p.State == StreamingEndpointState.Running);

            if (origin != null)
            {
                controller.Stop(account.AccountName, origin.Id.NimbusIdToRawGuid());
                origin = context.StreamingEndpoints.Where(c => c.Id == origin.Id).FirstOrDefault();
                Assert.AreEqual(StreamingEndpointState.Stopping, origin.State);
            }
            //trying to stop a stopped origin fails.
            origin = origins.FirstOrDefault(p => p.State != StreamingEndpointState.Running);
            if (origin != null)
            {
                try
                {
                    controller.Stop(account.AccountName, origin.Id.NimbusIdToRawGuid());
                }
                catch (HttpResponseException he)
                {
                    Assert.AreEqual(HttpStatusCode.PreconditionFailed, he.Response.StatusCode);
                }
            }
        }
コード例 #4
0
        public void SetUp()
        {
            _originService = Substitute.For <IOriginService>();
            _mapper        = Substitute.For <IMapper>();
            _characterRandomNameService = Substitute.For <ICharacterRandomNameService>();

            _originsController = new OriginsController(_originService, _mapper, _characterRandomNameService);
        }
コード例 #5
0
        public void GETEditBadIdTest()
        {
            int?id = null;

            var controller = new OriginsController();

            var response = controller.Edit(id) as HttpStatusCodeResult;

            Assert.IsNotNull(response);
            Assert.IsTrue(response.StatusCode == 400);
        }
コード例 #6
0
        public void GetOriginByIdTest()
        {
            var account  = App.Config.GetDefaultAccount();
            var context  = account.GetContext();
            var endpoint = context.StreamingEndpoints.ToList()
                           .FirstOrDefault();

            Assert.IsNotNull(endpoint, "No streaming endpoint present");
            var controller = new OriginsController();
            var origin     = controller.GetOriginById(account.AccountName, endpoint.Id.Substring(12));

            Compare(endpoint, origin);
        }
コード例 #7
0
        public void GetAllOriginsTest()
        {
            var account    = App.Config.GetDefaultAccount();
            var context    = account.GetContext();
            var endpoints  = context.StreamingEndpoints.ToList().OrderBy(e => e.Name).ToList();
            var controller = new OriginsController();
            var origins    = controller.GetOrigins(account.AccountName);

            Assert.AreEqual(endpoints.Count, origins.Count);
            for (var i = 0; i < origins.Count; ++i)
            {
                Compare(endpoints[i], origins[i]);
            }
        }
コード例 #8
0
        public void NullIndexTest()
        {
            IEnumerable <Origin> expected = null;

            var mockRepo = new Mock <IPlantBreedingRepo>();

            mockRepo.Setup(r => r.GetOrigins()).Returns(expected);

            var controller = new OriginsController(mockRepo.Object);
            var response   = controller.Index() as RedirectToRouteResult;

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

            var controller = new OriginsController(mockRepo.Object);

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

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.RouteValues);
            Assert.AreEqual("Index", response.RouteValues["action"]);
        }
コード例 #10
0
        public void GETEditNullTest()
        {
            int?   id       = 12;
            Origin expected = null;

            var mockRepo = new Mock <IPlantBreedingRepo>();

            mockRepo.Setup(r => r.GetOrigin(id.Value)).Returns(expected);

            var controller = new OriginsController(mockRepo.Object);

            var response = controller.Edit(id) as HttpNotFoundResult;

            Assert.IsNotNull(response);
            Assert.IsTrue(response.StatusCode == 404);
        }
コード例 #11
0
        public void POSTEditWithBadSessionTest()
        {
            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.Edit(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);
        }
コード例 #12
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());
        }