public void TestDeleteMeeting()
        {
            Meeting a = new Meeting()
            {
                MeetingId = 1,
                Date      = DateTime.Now.AddDays(5),
                Subject   = "Subject",
                Deleted   = false
            };

            var mockMeetingValidator = new Mock <IMeetingValidator>();

            mockMeetingValidator.Setup(x => x.DeleteMeeting(1)).Verifiable();
            mockMeetingValidator.Setup(x => x.secure(null)).Verifiable();
            mockMeetingValidator.Setup(x => x.AtmSecure(null)).Verifiable();

            var controller        = new MeetingsController(mockMeetingValidator.Object);
            var controllerContext = new HttpControllerContext();
            var request           = new HttpRequestMessage();

            request.Headers.Add("TODO_PAGOS_TOKEN", "1");
            controllerContext.Request    = request;
            controller.ControllerContext = controllerContext;

            IHttpActionResult actionResult = controller.DeleteMeeting(1);
            var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <Meeting> >;

            Assert.IsNotNull(actionResult);
        }
Example #2
0
        public void Search_ThrowsException()
        {
            // Arrange
            int      id    = 123;
            string   title = "naziv";
            DateTime from  = DateTime.Now;
            DateTime to    = DateTime.Now.AddDays(10);

            var usersOnMeeting = new List <UserMeetingDto>()
            {
                new UserMeetingDto()
                {
                    UserId = 1
                }
            };

            var meeting = new MeetingsSearchModel()
            {
                MeetingId   = id,
                Title       = title,
                From        = from,
                To          = to,
                UserMeeting = usersOnMeeting
            };

            var meetingRepo         = new Mock <IMeetingsRepository>();
            var meetingManipulation = new MeetingsManipulation(meetingRepo.Object);
            var controller          = new MeetingsController(meetingManipulation);

            var result = controller.Search(meeting, 1, 1);

            // Assert
            Assert.IsType <ObjectResult>(result);
        }
Example #3
0
        /// <summary>
        /// Prepares test environment.
        /// </summary>
        private void Setup()
        {
            IServiceCollection services = new ServiceCollection();

            var keepAliveConnection = new SqliteConnection("DataSource=:memory:");

            keepAliveConnection.Open();

            services.AddDbContext <ApplicationDbContext>(opt => opt.UseSqlite(keepAliveConnection));
            serviceProvider = services.BuildServiceProvider();
            ApplicationDbContext context = serviceProvider.GetService <ApplicationDbContext>();

            context.Database.EnsureCreated();
            context.Users.Add(user1);
            context.Rooms.Add(room1);
            context.SaveChanges();

            meeting1 = context.Meetings.Add(new Meeting()
            {
                Title       = "Meeting 1",
                Description = "This is a meeting.",
                StartTime   = new DateTime(2021, 4, 1, 13, 30, 0),
                EndTime     = new DateTime(2021, 4, 1, 14, 30, 0),
                Owner       = user1,
                Room        = room1
            }).Entity;
            context.SaveChanges();

            _meetingsController = new MeetingsController(new UserService(context), new MeetingService(context), new RoomService(context));
        }
Example #4
0
        public void Search_ThrowsNSIException()
        {
            var meetingRepo         = new Mock <IMeetingsRepository>();
            var meetingManipulation = new MeetingsManipulation(meetingRepo.Object);
            var controller          = new MeetingsController(meetingManipulation);

            var result = controller.Search(null, 1, 1);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Example #5
0
        public void Get_id_NotFound()
        {
            var mock = new Mock <IDataAccessProvider>();

            string id = "ab2bd817-98cd-4cf3-a80a-53ea0cd9c200";

            mock.Setup(repo => repo.GetMeetingSingleRecord(id)).Returns((Meeting)null);
            var controller = new MeetingsController(mock.Object);
            var Result     = controller.Details(id);

            var OkResult = Assert.IsType <NotFoundObjectResult>(Result.Result);
        }
Example #6
0
        public void GetMeetingByUserId_ReturnsBadRequest()
        {
            var meetingRepo         = new Mock <IMeetingsRepository>();
            var meetingManipulation = new MeetingsManipulation(meetingRepo.Object);
            var controller          = new MeetingsController(meetingManipulation);

            // Act
            var result = controller.GetMeetingsByUser(-11);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Example #7
0
        public void Edit_NotFound()
        {
            var mock = new Mock <IDataAccessProvider>();

            var controller = new MeetingsController(mock.Object);

            mock.Setup(r => r.MeetingExists("ab2bd817-98cd-4cf3-a80a-53ea0cd9c200")).Returns(null);
            Meeting m      = new Meeting();
            var     Result = controller.Edit(m);

            var OkResult = Assert.IsType <BadRequestObjectResult>(Result.Result);
        }
Example #8
0
        public void GetMeetingTimes_ReturnsOK()
        {
            // Arrange
            int      id        = 123;
            string   title     = "naziv";
            string   meetPlace = "mjesto";
            DateTime from      = DateTime.Now;
            DateTime to        = DateTime.Now.AddDays(10);

            var usersOnMeeting = new List <UserMeetingDto>()
            {
                new UserMeetingDto()
                {
                    UserId = 1
                },
                new UserMeetingDto()
                {
                    UserId = 2
                },
                new UserMeetingDto()
                {
                    UserId = 3
                },
                new UserMeetingDto()
                {
                    UserId = 4
                }
            };

            var meeting = new MeetingDto()
            {
                MeetingId    = id,
                Title        = title,
                MeetingPlace = meetPlace,
                From         = from,
                To           = to,
                UserMeeting  = usersOnMeeting
            };
            var meetingRepo = new Mock <IMeetingsRepository>();

            meetingRepo.Setup(x => x.InsertMeeting(meeting));
            var meetingManipulation = new MeetingsManipulation(meetingRepo.Object);
            var controller          = new MeetingsController(meetingManipulation);

            // Act
            var result = controller.GetMeetingsTimes(new List <int> {
                1, 2, 3, 4
            }, from, to, 10, 123);

            // Assert
            Assert.IsType <OkObjectResult>(result);
        }
Example #9
0
        public void Get()
        {
            var mock = new Mock <IDataAccessProvider>();

            mock.Setup(repo => repo.GetRecords(o)).Returns(meets);
            var controller = new MeetingsController(mock.Object);
            var Result     = controller.GetMeetings(o);

            var OkResult  = Assert.IsType <OkObjectResult>(Result.Result);
            var resultObj = (IQueryable <Meeting>)OkResult.Value;

            Assert.Equal(2, resultObj.ToList().Count());
        }
Example #10
0
        public void Delete_NotFound()
        {
            const string DeletedId = "ab2bd817-98cd-4cf3-a80a-53ea0cd9c200";

            var mock = new Mock <IDataAccessProvider>();

            mock.Setup(repo => repo.GetMeetingSingleRecord(DeletedId)).Returns((Meeting)null);
            mock.Setup(repo => repo.DeleteMeetingRecord(DeletedId)).Returns(DeletedId);
            var controller = new MeetingsController(mock.Object);
            var Result     = controller.DeleteConfirmed(DeletedId);

            var OkResult = Assert.IsType <NotFoundObjectResult>(Result.Result);
        }
Example #11
0
        public void Add_Invalid()
        {
            var mock = new Mock <IDataAccessProvider>();

            Meeting m = new Meeting();

            var controller = new MeetingsController(mock.Object);

            controller.ModelState.AddModelError("Owner", "Required");
            var Result = controller.Create(m);

            Assert.IsType <BadRequestObjectResult>(Result);
        }
Example #12
0
        public void GetMeetingTimes_UserIdReturnsBadRequest()
        {
            var meetingRepo         = new Mock <IMeetingsRepository>();
            var meetingManipulation = new MeetingsManipulation(meetingRepo.Object);
            var controller          = new MeetingsController(meetingManipulation);

            // Act
            var result = controller.GetMeetingsTimes(new List <int> {
                -1, 2, 3, 4
            }, DateTime.Now, DateTime.Now, 10, 10);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Example #13
0
        public void CheckUsersAvailability_MeetingIdReturnsBadRequest()
        {
            var meetingRepo         = new Mock <IMeetingsRepository>();
            var meetingManipulation = new MeetingsManipulation(meetingRepo.Object);
            var controller          = new MeetingsController(meetingManipulation);

            // Act
            var result = controller.CheckUsersAvailability(new List <int> {
                1, 2, 3, 4
            }, DateTime.Now, DateTime.Now, -1);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Example #14
0
        public void Delete_ThrowsAnException()
        {
            // Arrange
            var meetingRepo         = new Mock <IMeetingsRepository>();
            var meetingManipulation = new MeetingsManipulation(meetingRepo.Object);
            var controller          = new MeetingsController(meetingManipulation);


            // Act
            var result = controller.DeleteMeeting(-1);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Example #15
0
        public void Update_ReturnsBadRequest_GivenInvalidModel()
        {
            // Arrange & Act
            var mockRepo   = new Mock <IMeetingsManipulation>();
            var controller = new MeetingsController(mockRepo.Object);

            controller.ModelState.AddModelError("error", "some error");

            // Act
            var result = controller.Put(5, model: null);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Example #16
0
        public void Get_id_Ok()
        {
            var mock = new Mock <IDataAccessProvider>();

            string id = "ab2bd817-98cd-4cf3-a80a-53ea0cd9c200";

            mock.Setup(repo => repo.GetMeetingSingleRecord(id)).Returns(meet);
            var controller = new MeetingsController(mock.Object);
            var Result     = controller.Details(id);

            var OkResult  = Assert.IsType <OkObjectResult>(Result.Result);
            var resultObj = (Responce)OkResult.Value;

            Assert.Equal("13:40", resultObj.meeting.Start_time);
        }
Example #17
0
        public void Edit_Ok()
        {
            var mock = new Mock <IDataAccessProvider>();

            var controller = new MeetingsController(mock.Object);

            mock.Setup(r => r.MeetingExists("ab2bd817-98cd-4cf3-a80a-53ea0cd9c200")).Returns(true);
            var Result = controller.Edit(meet);

            mock.Verify(svc => svc.UpdateMeetingRecord(It.IsAny <Meeting>()),
                        Times.Once());
            var OkResult  = Assert.IsType <OkObjectResult>(Result.Result);
            var resultObj = (Responce)OkResult.Value;

            Assert.Equal("20:40", resultObj.meeting.End_time);
        }
Example #18
0
        public void Sort_Ok()
        {
            OwnerParameters o1 = new OwnerParameters();

            o1.Sort_by = "Start_time";
            var mock = new Mock <IDataAccessProvider>();

            mock.Setup(repo => repo.GetRecords(o1)).Returns(meets_sorted);
            var controller = new MeetingsController(mock.Object);
            var Result     = controller.GetMeetings(o1);

            var OkResult  = Assert.IsType <OkObjectResult>(Result.Result);
            var resultObj = (IQueryable <Meeting>)OkResult.Value;

            Assert.Equal("12:40", resultObj.ToList()[0].Start_time);
        }
Example #19
0
        public void Search_Ok()
        {
            OwnerParameters o1 = new OwnerParameters();

            o1.Search = "Molly";
            var mock = new Mock <IDataAccessProvider>();

            mock.Setup(repo => repo.GetRecords(o1)).Returns(meets1);
            var controller = new MeetingsController(mock.Object);
            var Result     = controller.GetMeetings(o1);

            var OkResult  = Assert.IsType <OkObjectResult>(Result.Result);
            var resultObj = (IQueryable <Meeting>)OkResult.Value;

            Assert.Single(resultObj.ToList());
        }
Example #20
0
        public void Delete_Ok()
        {
            const string DeletedId = "ab2bd817-98cd-4cf3-a80a-53ea0cd9c200";

            var mock = new Mock <IDataAccessProvider>();

            mock.Setup(repo => repo.GetMeetingSingleRecord(DeletedId)).Returns(meet);
            mock.Setup(repo => repo.DeleteMeetingRecord(DeletedId)).Returns(DeletedId);
            var controller = new MeetingsController(mock.Object);
            var Result     = controller.DeleteConfirmed(DeletedId);

            var OkResult  = Assert.IsType <OkObjectResult>(Result.Result);
            var resultObj = (Responce)OkResult.Value;

            string[] s = resultObj.message.Split(' ');
            Assert.Equal(DeletedId, s[1]);
        }
        public void CountMeetingPriceTest()
        {
            MeetingsController controller = new MeetingsController();

            DateTime     start   = new DateTime(2019, 9, 1, 10, 10, 0, 0);
            DateTime     stop    = new DateTime(2019, 9, 1, 11, 10, 0, 0);
            MeetingModel meeting = new MeetingModel()
            {
                StartTime    = start,
                StopTime     = stop,
                Participants = "Катя, Маша"
            };

            var result   = controller.CountMeetingPrice(meeting, 60);
            var expected = 120.0;

            Assert.AreEqual(expected, result);
        }
        //[ExpectedException(typeof(Exception))]
        public void TestGetMeetings()
        {
            var allMeetings = new[]
            {
                new Meeting()
                {
                    MeetingId = 1,
                    Date      = DateTime.Now.AddDays(5),
                    Subject   = "Subject",
                    Deleted   = false
                },
                new Meeting()
                {
                    MeetingId = 2,
                    Date      = DateTime.Now.AddDays(3),
                    Subject   = "Subject",
                    Deleted   = false
                },
            };

            var mockMeetingValidator = new Mock <IMeetingValidator>();

            mockMeetingValidator.Setup(x => x.GetMeetings()).Returns(allMeetings);

            var controller = new MeetingsController(mockMeetingValidator.Object);

            // Arrange
            var controllerContext = new HttpControllerContext();
            var request           = new HttpRequestMessage();

            request.Headers.Add("TODO_PAGOS_TOKEN", "1");

            // Don't forget these lines, if you do then the request will be null.
            controllerContext.Request    = request;
            controller.ControllerContext = controllerContext;

            IHttpActionResult actionResult = controller.GetMeetings();
            //throw new Exception(actionResult.GetType().ToString());
            var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <Meeting> >;

            Assert.IsNotNull(contentResult);
        }
Example #23
0
        public void Add_Valid()
        {
            // Arrange
            var          serviceMock = new Mock <IDataAccessProvider>();
            const string Id          = "ab2bd817-98cd-4cf3-a80a-53ea0cd9c200";

            serviceMock.Setup(x => x.AddMeetingRecord(meet)).Returns(meet);
            serviceMock.Setup(x => x.GetMeetingSingleRecord(Id)).Returns(meet);
            var controller = new MeetingsController(serviceMock.Object);

            // Act
            var Result = controller.Create(meet);

            // Assert
            var OkResult  = Assert.IsType <OkObjectResult>(Result);
            var resultObj = (Responce)OkResult.Value;
            var actual    = Assert.IsType <Meeting>(resultObj.meeting);

            Assert.Equal(meet, actual);
        }
Example #24
0
        public async void GetMeetings()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase("SocialMediumForMusicians3").Options;
            var storeOptions = Options.Create(new OperationalStoreOptions());

            var m1Id = Guid.NewGuid().ToString();
            var m2Id = Guid.NewGuid().ToString();

            using (var context = new ApplicationDbContext(options, storeOptions))
            {
                var m1 = new Musician
                {
                    Id    = m1Id,
                    Email = "*****@*****.**",
                    Name  = "Aaa",
                    Price = 10.03M,
                    Types = new List <MusicianType>()
                    {
                        MusicianType.Jamming,
                        MusicianType.Session, MusicianType.Teacher
                    },
                    Instruments = new List <string>()
                    {
                        "Drums"
                    }
                };

                var m2 = new Musician
                {
                    Id    = m2Id,
                    Email = "*****@*****.**",
                    Name  = "Aaa2",
                    Price = 10.03M
                };

                context.AddRange(new List <Musician> {
                    m1, m2
                });

                var meet1 = new Meeting
                {
                    Id        = Guid.NewGuid(),
                    Host      = m1,
                    Guest     = m2,
                    StartTime = DateTime.Now,
                    EndTime   = DateTime.Now
                };

                var meet2 = new Meeting
                {
                    Id        = Guid.NewGuid(),
                    Host      = m2,
                    Guest     = m1,
                    StartTime = DateTime.Now,
                    EndTime   = DateTime.Now
                };

                var meet3 = new Meeting
                {
                    Id        = Guid.NewGuid(),
                    Host      = m2,
                    Guest     = m1,
                    StartTime = DateTime.Now,
                    EndTime   = DateTime.Now
                };

                var meet4 = new Meeting
                {
                    Id        = Guid.NewGuid(),
                    Host      = m2,
                    Guest     = m1,
                    StartTime = DateTime.Now,
                    EndTime   = DateTime.Now
                };

                var meet5 = new Meeting
                {
                    Id        = Guid.NewGuid(),
                    Host      = m2,
                    Guest     = m1,
                    StartTime = DateTime.Now,
                    EndTime   = DateTime.Now
                };

                context.AddRange(new List <Meeting> {
                    meet1, meet2, meet3, meet4, meet5
                });

                context.SaveChanges();
            }

            PaginationApiResult <MeetingDTO> resultHost;
            PaginationApiResult <MeetingDTO> resultGuest;

            // Act
            using (var context = new ApplicationDbContext(options, storeOptions))
            {
                var controller = new MeetingsController(context);

                resultHost  = (await controller.GetMeetings(hostId: m1Id)).Value;
                resultGuest = (await controller.GetMeetings(guestId: m1Id, pageIndex: 0, pageSize: 2)).Value;
            }

            // Assert
            Assert.Single(resultHost.Elements);

            Assert.Equal(4, resultGuest.TotalCount);
            Assert.Equal(2, resultGuest.TotalPages);
            Assert.Equal(2, resultGuest.Elements.Count);
        }
 public UnitTestsAddMeeting()
 {
     // Arrange
     controller = new MeetingsController(null);
 }