Exemple #1
0
        public void Create_Race_As_Admin()
        {
            var adminUser = new User()
            {
                AddressContactId = 1,
                Email            = "*****@*****.**",
                FirstName        = "Robin",
                LastName         = "Edbom",
                Password         = "******",
                DateOfBirth      = DateTime.Parse("1996-11-07"),
                Id = 1
            };

            var data = new List <RaceEvent>().AsQueryable();

            var eventToAdd = new RaceEvent()
            {
                Class       = "Class?",
                EventId     = 1,
                Id          = 1,
                MaxHandicap = 2,
                MinHandicap = 1,
                Type        = "Speed race"
            };

            // Arrange
            var fakeDbSet = A.Fake <DbSet <RaceEvent> >(o => o.Implements(typeof(IQueryable <RaceEvent>)).Implements(typeof(IDbAsyncEnumerable <RaceEvent>)));

            A.CallTo(() => ((IQueryable <RaceEvent>)fakeDbSet).Provider).Returns(data.Provider);
            A.CallTo(() => ((IQueryable <RaceEvent>)fakeDbSet).Expression).Returns(data.Expression);
            A.CallTo(() => ((IQueryable <RaceEvent>)fakeDbSet).ElementType).Returns(data.ElementType);
            A.CallTo(() => ((IQueryable <RaceEvent>)fakeDbSet).GetEnumerator()).Returns(data.GetEnumerator());

            var fakeContext = A.Fake <RaceEventContext>();


            A.CallTo(() => fakeContext.RaceEvents).Returns(fakeDbSet);
            A.CallTo(() => fakeContext.RaceEvents.Add(eventToAdd)).Returns(eventToAdd);


            var fakeAdminSercice = A.Fake <IAdminService>();

            A.CallTo(() => fakeAdminSercice.IsUserSysAdmin(adminUser)).Returns(true);


            var raceEventService = new RaceEventService(fakeContext, fakeAdminSercice);
            // Act

            var raceEvent = raceEventService.Add(eventToAdd, adminUser);

            // Assert
            Assert.AreEqual(1, raceEvent.Id);
            Assert.AreEqual(1, raceEvent.MinHandicap);
            Assert.AreEqual(1, raceEvent.EventId);
        }
        public ActionResult Create(RaceEvent race)
        {
            try
            {
                race.CreatedOn   = DateTime.Now;
                race.CreatedById = User.Identity.GetUserId();

                raceEventService.Add(race);

                TempData["MessageAlert"] = new Alert {
                    CssClass = "alert-success", Title = "Success!", Message = "Race event is successfully created."
                };
                return(RedirectToAction("Create"));
            }
            catch
            {
                return(View());
            }
        }