public void GetEventDefinitionByOrganizerId_CallWebAPI_GetDefinitionPaged_NotFail_Test()
        {
            int    expected         = 0;
            int    organizerId      = 0;
            int    pageSize         = 0;
            int    pageIndex        = 0;
            string filter           = string.Empty;
            var    manualResetEvent = new ManualResetEvent(false);
            var    exceptionResult  = default(Exception);

            using (var context = new MyEventsContext())
            {
                organizerId = context.EventDefinitions.First().OrganizerId;
                expected    = context.EventDefinitions.Where(q => q.OrganizerId == organizerId).Count();
                pageSize    = expected;
            }

            string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString();
            var    service   = new Client.MyEventsClient(urlPrefix);

            IAsyncResult ar = service.EventDefinitionService.GetEventDefinitionByOrganizerIdAsync(organizerId, filter, pageSize, pageIndex, (IList <Client.EventDefinition> actual) =>
            {
                TestHelper.ValidateResult(expected, actual.Count(), manualResetEvent, ref exceptionResult);
            });

            TestHelper.WaitAll(manualResetEvent, ref exceptionResult);
        }
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            MyEventsContext context = new MyEventsContext();

            DomainManager = new EntityDomainManager <Speaker>(context, Request, enableSoftDelete: true);
        }
        public void AddSession_Added_NotFail_Test()
        {
            var context = new MyEventsContext();
            int eventDefinitionId = context.EventDefinitions.FirstOrDefault().EventDefinitionId;

            int expected = context.Sessions.Count() + 1;

            ISessionRepository target = new SessionRepository();

            Session session = new Session();
            session.EventDefinitionId = eventDefinitionId;
            session.Title = Guid.NewGuid().ToString();
            session.Description = Guid.NewGuid().ToString();
            session.Speaker = Guid.NewGuid().ToString();
            session.Biography = Guid.NewGuid().ToString();
            session.TwitterAccount = Guid.NewGuid().ToString();
            session.StartTime = DateTime.Now;
            session.TimeZoneOffset = 2;
            session.Duration = 60;

            target.Add(session);

            int actual = context.Sessions.Count();

            Assert.AreEqual(expected, actual);
        }
        public void GetEventDefinitionById_CallWebAPI_GetDefinition_NotFail_Test()
        {
            EventDefinition expected;
            var             manualResetEvent = new ManualResetEvent(false);
            var             exceptionResult  = default(Exception);

            using (var context = new MyEventsContext())
            {
                expected = context.EventDefinitions.First();
            }

            string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString();
            var    service   = new Client.MyEventsClient(urlPrefix);

            service.SetAccessToken(MyEventsToken.CreateToken(expected.OrganizerId));
            IAsyncResult ar = service.EventDefinitionService.GetEventDefinitionByIdAsync(expected.EventDefinitionId, (Client.EventDefinition actual) =>
            {
                try
                {
                    Assert.AreEqual(expected.Name, actual.Name);
                    Assert.AreEqual(expected.OrganizerId, actual.OrganizerId);
                    Assert.AreEqual(expected.EventDefinitionId, actual.EventDefinitionId);
                }
                catch (Exception ex)
                {
                    exceptionResult = ex;
                }
                finally
                {
                    manualResetEvent.Set();
                }
            });

            TestHelper.WaitAll(manualResetEvent, ref exceptionResult);
        }
Exemple #5
0
        public void DeleteComment_Integration_CallWebAPI_Deleted_NotFail_Test()
        {
            int expected         = 0;
            int sessionId        = 0;
            int organizerId      = 0;
            var manualResetEvent = new ManualResetEvent(false);
            var exceptionResult  = default(Exception);

            using (var context = new MyEventsContext())
            {
                sessionId   = context.Comments.First().SessionId;
                expected    = context.Comments.Count(q => q.SessionId == sessionId) - 1;
                organizerId = context.Sessions.Include("EventDefinition")
                              .FirstOrDefault(q => q.SessionId == sessionId).EventDefinition.OrganizerId;
            }

            string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString();
            var    service   = new Client.MyEventsClient(urlPrefix);

            service.SetAccessToken(MyEventsToken.CreateToken(organizerId));
            IAsyncResult ar = service.CommentService.GetAllCommentsAsync(sessionId, (IList <Client.Comment> comments) =>
            {
                IAsyncResult arUpdate = service.CommentService.DeleteCommentAsync(comments.First().CommentId, (HttpStatusCode statusCode) =>
                {
                    using (var context = new MyEventsContext())
                    {
                        int actual = context.Comments.Count(q => q.SessionId == sessionId);
                        TestHelper.ValidateResult(expected, actual, manualResetEvent, ref exceptionResult);
                    }
                });
            });

            TestHelper.WaitAll(manualResetEvent, ref exceptionResult);
        }
Exemple #6
0
        public void PutSessionPeriod_Integration_CallWebAPI_Updated_NotFail_Test()
        {
            Session session;
            string  startTime        = DateTime.Now.ToString();
            int     duration         = 60;
            var     manualResetEvent = new ManualResetEvent(false);
            var     exceptionResult  = default(Exception);

            using (var context = new MyEventsContext())
            {
                session = context.Sessions.Include("EventDefinition").First();
            }

            string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString();

            var service = new Client.MyEventsClient(urlPrefix);

            service.SetAccessToken(MyEventsToken.CreateToken(session.EventDefinition.OrganizerId));
            IAsyncResult ar = service.SessionService.UpdateSessionPeriodAsync(session.SessionId, startTime, duration, (HttpStatusCode statusCode) =>
            {
                using (var context = new MyEventsContext())
                {
                    var actual = context.Sessions.FirstOrDefault(q => q.SessionId == session.SessionId);
                    TestHelper.ValidateResult(duration, actual.Duration, manualResetEvent, ref exceptionResult);
                }
            });

            TestHelper.WaitAll(manualResetEvent, ref exceptionResult);
        }
Exemple #7
0
        public void DeleteSession_Integration_CallWebAPI_Deleted_NotFail_Test()
        {
            Session session;
            int     expected         = 0;
            var     manualResetEvent = new ManualResetEvent(false);
            var     exceptionResult  = default(Exception);

            // Get values to test
            using (var context = new MyEventsContext())
            {
                session  = context.Sessions.Include("EventDefinition").First();
                expected = context.Sessions.Count() - 1;
            }

            // Method to Test
            string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString();
            var    service   = new Client.MyEventsClient(urlPrefix);

            service.SetAccessToken(MyEventsToken.CreateToken(session.EventDefinition.OrganizerId));
            IAsyncResult ar = service.SessionService.DeleteSessionAsync(session.SessionId, (HttpStatusCode statusCode) =>
            {
                // Asserts
                using (var context = new MyEventsContext())
                {
                    Session actual = context.Sessions.FirstOrDefault(q => q.SessionId == session.SessionId);
                    TestHelper.ValidateResult(null, actual, manualResetEvent, ref exceptionResult);
                }
            });

            TestHelper.WaitAll(manualResetEvent, ref exceptionResult);
        }
        public void DeleteRoomPoints_Added_Test()
        {
            var context = new MyEventsContext();

            int eventDefinitionId = context.EventDefinitions.Include("RoomPoints")
                                    .Where(q => !q.RoomPoints.Any())
                                    .First().EventDefinitionId;

            List <RoomPoint> points = new List <RoomPoint>()
            {
                new RoomPoint()
                {
                    EventDefinitionId = eventDefinitionId, PointX = 0, PointY = 0, RoomNumber = 20
                },
                new RoomPoint()
                {
                    EventDefinitionId = eventDefinitionId, PointX = 1, PointY = 2, RoomNumber = 20
                },
                new RoomPoint()
                {
                    EventDefinitionId = eventDefinitionId, PointX = 3, PointY = 4, RoomNumber = 20
                },
            };

            IEventDefinitionRepository target = new EventDefinitionRepository();

            target.AddRoomPoints(points);
            int actual = target.GetAllRoomPoints(eventDefinitionId).Count();

            Assert.AreEqual(points.Count(), actual);

            target.DeleteRoomPoints(eventDefinitionId, 20);
            actual = target.GetAllRoomPoints(eventDefinitionId).Count();
            Assert.AreEqual(0, actual);
        }
        private static void ValidateAttendeeCount(int expected, ManualResetEvent manualResetEvent, ref Exception exceptionResult, IEnumerable <Client.EventDefinition> results)
        {
            try
            {
                Assert.AreEqual(expected, results.Count());

                // Validate that the events contains the number of attendees. it´s very important to get this value through API
                using (var context = new MyEventsContext())
                {
                    foreach (var result in results)
                    {
                        expected = context.EventDefinitions.Include("RegisteredUsers")
                                   .Where(q => q.EventDefinitionId == result.EventDefinitionId)
                                   .Select(q => q.RegisteredUsers.Count).First();

                        Assert.AreEqual(expected, result.AttendeesCount);
                    }
                }
            }
            catch (Exception ex)
            {
                exceptionResult = ex;
            }
            finally
            {
                manualResetEvent.Set();
            }
        }
Exemple #10
0
        private static int AddEvent(MyEventsContext context)
        {
            var eventDef = new EventDefinition();

            eventDef.OrganizerId    = AddOrganizer(context);
            eventDef.Name           = Guid.NewGuid().ToString();
            eventDef.Description    = Guid.NewGuid().ToString();
            eventDef.Address        = Guid.NewGuid().ToString();
            eventDef.City           = Guid.NewGuid().ToString();
            eventDef.Tags           = Guid.NewGuid().ToString();
            eventDef.TwitterAccount = Guid.NewGuid().ToString();
            eventDef.Rooms          = 1;
            eventDef.Date           = System.DateTime.Now;
            eventDef.StartTime      = System.DateTime.Now;
            eventDef.EndTime        = System.DateTime.Now;
            eventDef.Latitude       = 0;
            eventDef.Longitude      = 0;
            eventDef.Likes          = 0;
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            eventDef.Logo = encoding.GetBytes("sample");

            context.EventDefinitions.Add(eventDef);
            context.SaveChanges();
            return(eventDef.EventDefinitionId);
        }
        public void PostRegisteredUserScore_Integration_CallWebAPI_RegisteredUserAdded_NotFail_Test()
        {
            int registeredUserId = 0;
            int sessionId        = 0;
            int expected         = 4;
            var manualResetEvent = new ManualResetEvent(false);
            var exceptionResult  = default(Exception);

            // Get values to test
            using (var context = new MyEventsContext())
            {
                registeredUserId = context.SessionRegisteredUsers.First().RegisteredUserId;
                sessionId        = context.SessionRegisteredUsers.First().SessionId;
            }

            // Method to Test
            string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString();
            var    service   = new Client.MyEventsClient(urlPrefix);

            service.SetAccessToken(MyEventsToken.CreateToken(registeredUserId));
            IAsyncResult ar = service.RegisteredUserService.AddRegisteredUserScoreAsync(registeredUserId, sessionId, expected, (HttpStatusCode statusCode) =>
            {
                // Asserts
                using (var context = new MyEventsContext())
                {
                    double actual = context.SessionRegisteredUsers.Where(q => q.RegisteredUserId == registeredUserId && q.SessionId == sessionId).First().Score;
                    TestHelper.ValidateResult(expected, actual, manualResetEvent, ref exceptionResult);
                }
            });


            TestHelper.WaitAll(manualResetEvent, ref exceptionResult);
        }
        public void GetRegisteredUserEventDefinitions_Integration_CallWebAPI_GetEventDefinitionListOftheUser_NotFail_Test()
        {
            int registerUserId   = 0;
            var manualResetEvent = new ManualResetEvent(false);
            var exceptionResult  = default(Exception);

            using (var context = new MyEventsContext())
            {
                registerUserId = context.RegisteredUsers.FirstOrDefault().RegisteredUserId;
            }

            string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString();

            var service = new Client.MyEventsClient(urlPrefix);

            IAsyncResult ar = service.RegisteredUserService.GetRegisteredUserEventDefinitionsAsync(registerUserId, (IList <Client.EventDefinition> eventDefinitions) =>
            {
                try
                {
                    Assert.IsNotNull(eventDefinitions);
                }
                catch (Exception ex)
                {
                    exceptionResult = ex;
                }
                finally
                {
                    manualResetEvent.Set();
                }
            });

            ar.AsyncWaitHandle.WaitOne();
        }
        public void AddSession_Added_NotFail_Test()
        {
            var context           = new MyEventsContext();
            int eventDefinitionId = context.EventDefinitions.FirstOrDefault().EventDefinitionId;

            int expected = context.Sessions.Count() + 1;

            ISessionRepository target = new SessionRepository();

            Session session = new Session();

            session.EventDefinitionId = eventDefinitionId;
            session.Title             = Guid.NewGuid().ToString();
            session.Description       = Guid.NewGuid().ToString();
            session.Speaker           = Guid.NewGuid().ToString();
            session.Biography         = Guid.NewGuid().ToString();
            session.TwitterAccount    = Guid.NewGuid().ToString();
            session.StartTime         = DateTime.Now;
            session.TimeZoneOffset    = 2;
            session.Duration          = 60;

            target.Add(session);

            int actual = context.Sessions.Count();

            Assert.AreEqual(expected, actual);
        }
Exemple #14
0
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            MyEventsContext context = new MyEventsContext();

            DomainManager = new EntityDomainManager <TodoItem>(context, Request);
        }
Exemple #15
0
        public void GetMaterial_Integration_CallWebAPI_GetResults_NotFail_Test()
        {
            Material material;
            var      manualResetEvent = new ManualResetEvent(false);
            var      exceptionResult  = default(Exception);

            using (var context = new MyEventsContext())
            {
                material = context.Materials.First();
            }

            string urlPrefix = testContextInstance.Properties[TestContext.AspNetDevelopmentServerPrefix + "webapiserver"].ToString();

            var service = new Client.MyEventsClient(urlPrefix);

            IAsyncResult ar = service.MaterialService.GetMaterialAsync(material.MaterialId, (Client.Material result) =>
            {
                try
                {
                    Assert.IsNotNull(result.Content);
                }
                catch (Exception ex)
                {
                    exceptionResult = ex;
                }
                finally
                {
                    manualResetEvent.Set();
                }
            });

            TestHelper.WaitAll(manualResetEvent, ref exceptionResult);
        }
        public void AddEventDefinition_Added_NotFail_Test()
        {
            var context     = new MyEventsContext();
            int organizerId = context.RegisteredUsers.FirstOrDefault().RegisteredUserId;

            int expected = context.EventDefinitions.Count() + 1;

            IEventDefinitionRepository target = new EventDefinitionRepository();

            var eventDef = new EventDefinition();

            eventDef.OrganizerId    = organizerId;
            eventDef.Name           = Guid.NewGuid().ToString();
            eventDef.Description    = Guid.NewGuid().ToString();
            eventDef.Address        = Guid.NewGuid().ToString();
            eventDef.City           = Guid.NewGuid().ToString();
            eventDef.Tags           = Guid.NewGuid().ToString();
            eventDef.TwitterAccount = Guid.NewGuid().ToString();
            eventDef.RoomNumber     = 1;
            eventDef.Date           = System.DateTime.Now;
            eventDef.StartTime      = System.DateTime.Now;
            eventDef.TimeZoneOffset = 2;
            eventDef.EndTime        = System.DateTime.Now.AddMinutes(1);
            eventDef.Likes          = 0;
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            eventDef.Logo = encoding.GetBytes("sample");

            target.Add(eventDef);

            int actual = context.EventDefinitions.Count();

            Assert.AreEqual(expected, actual);
        }
        public void DeleteEventDefinition_Deleted_NotFail_Test()
        {
            var context = new MyEventsContext();
            int organizerId = context.RegisteredUsers.FirstOrDefault().RegisteredUserId;

            var eventDef = new EventDefinition();
            eventDef.OrganizerId = organizerId;
            eventDef.Name = Guid.NewGuid().ToString();
            eventDef.Description = Guid.NewGuid().ToString();
            eventDef.Address = Guid.NewGuid().ToString();
            eventDef.City = Guid.NewGuid().ToString();
            eventDef.Tags = Guid.NewGuid().ToString();
            eventDef.TwitterAccount = Guid.NewGuid().ToString();
            eventDef.RoomNumber = 1;
            eventDef.Date = System.DateTime.Now;
            eventDef.StartTime = System.DateTime.Now;
            eventDef.TimeZoneOffset = 2;
            eventDef.EndTime = System.DateTime.Now.AddMinutes(1);
            eventDef.Likes = 0;
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            eventDef.Logo = encoding.GetBytes("sample");

            IEventDefinitionRepository target = new EventDefinitionRepository();
            target.Add(eventDef);

            var eventDefinition = context.EventDefinitions.FirstOrDefault();
            int expected = context.EventDefinitions.Count() - 1;

            target.Delete(eventDef.EventDefinitionId);

            int actual = context.EventDefinitions.Count();

            Assert.AreEqual(expected, actual);
        }
        private void ValidateScore(int sessionId, double score)
        {
            var    context  = new MyEventsContext();
            var    session  = context.Sessions.Include("SessionRegisteredUsers").FirstOrDefault(q => q.SessionId == sessionId);
            double expected = session.SessionRegisteredUsers.Where(sr => sr.Rated).Average(sr => sr.Score);

            Assert.AreEqual(expected, session.Score);
        }
        public void GetTopTags_Coverage__Called_Test()
        {
            var context = new MyEventsContext();
            IEventDefinitionRepository target = new EventDefinitionRepository();
            var result = target.GetTopTags(1);

            Assert.IsNotNull(result);
        }
        public void GetRoomPoints_Coverage_Test()
        {
            var context = new MyEventsContext();

            IEventDefinitionRepository target = new EventDefinitionRepository();

            target.GetRoomPoints(context.Sessions.First().SessionId);
        }
 private static int AddAttendee(MyEventsContext context, int eventDefinitionId)
 {
     var attendee = new Attendee();
     attendee.EventDefinitionId = eventDefinitionId;
     attendee.Name = Guid.NewGuid().ToString();
     context.Attendees.Add(attendee);
     context.SaveChanges();
     return attendee.AttendeeId;
 }
Exemple #22
0
        private static int AddOrganizer(MyEventsContext context)
        {
            var organizer = new Organizer();

            organizer.Name = Guid.NewGuid().ToString();
            context.Organizers.Add(organizer);
            context.SaveChanges();
            return(organizer.OrganizerId);
        }
Exemple #23
0
        private static int AddAttendee(MyEventsContext context, int eventDefinitionId)
        {
            var attendee = new Attendee();

            attendee.EventDefinitionId = eventDefinitionId;
            attendee.Name = Guid.NewGuid().ToString();
            context.Attendees.Add(attendee);
            context.SaveChanges();
            return(attendee.AttendeeId);
        }
Exemple #24
0
        private static void DeleteAllAttendees(MyEventsContext context)
        {
            var attendees = context.Attendees.ToList();

            foreach (var attendee in attendees)
            {
                context.Attendees.Remove(attendee);
            }
            context.SaveChanges();
        }
Exemple #25
0
        private static void DeleteAllOrganizers(MyEventsContext context)
        {
            var organizers = context.Organizers.ToList();

            foreach (var organizer in organizers)
            {
                context.Organizers.Remove(organizer);
            }
            context.SaveChanges();
        }
        public void GetByIdTest()
        {
            var context           = new MyEventsContext();
            int eventDefinitionId = context.EventDefinitions.First().EventDefinitionId;

            IEventDefinitionRepository target = new EventDefinitionRepository();
            EventDefinition            actual = target.GetById(eventDefinitionId);

            Assert.IsNotNull(actual);
        }
        public void GetLastEventDefinitions_CallGettingZero_NotFailGetAll_Test()
        {
            var context  = new MyEventsContext();
            int expected = 0;

            IEventDefinitionRepository target = new EventDefinitionRepository();
            int actual = target.GetLast(expected).Count();

            Assert.AreEqual(expected, actual);
        }
        public void GetRoomImage_Coverage_NotFail_Test()
        {
            var context = new MyEventsContext();

            int eventDefinitionId = context.EventDefinitions.First().EventDefinitionId;

            IEventDefinitionRepository target = new EventDefinitionRepository();

            target.GetRoomImage(eventDefinitionId);
        }
Exemple #29
0
 private static void AddMaterial(MyEventsContext context, List <int> sessionIds, int count)
 {
     foreach (var sessionId in sessionIds)
     {
         for (int i = 0; i < count; i++)
         {
             AddMaterial(context, sessionId);
         }
     }
 }
Exemple #30
0
        private static void AddComment(MyEventsContext context, int sessionId, int attendeeId)
        {
            var comment = new Comment();

            comment.SessionId  = sessionId;
            comment.AttendeeId = attendeeId;
            comment.Text       = "comment sample";
            context.Comments.Add(comment);
            context.SaveChanges();
        }
        public void GetCommentOrganizerId_Call_GetResult_Test()
        {
            var context = new MyEventsContext();
            var comment = context.Comments.Include("Session.EventDefinition").FirstOrDefault();

            ICommentRepository target = new CommentRepository();

            int organizerId = target.GetOrganizerId(comment.CommentId);

            Assert.AreEqual(organizerId, comment.Session.EventDefinition.OrganizerId);
        }
        public void GetMaterialOrganizerId_Call_GetResult_Test()
        {
            var context = new MyEventsContext();
            var material = context.Materials.Include("Session.EventDefinition").FirstOrDefault();

            MaterialRepository target = new MaterialRepository();

            int organizerId = target.GetOrganizerId(material.MaterialId);

            Assert.AreEqual(organizerId, material.Session.EventDefinition.OrganizerId);
        }
        public void GetSessionOrganizerId_Call_GetResult_Test()
        {
            var context = new MyEventsContext();
            var session = context.Sessions.Include("EventDefinition").FirstOrDefault();

            ISessionRepository target = new SessionRepository();

            int organizerId = target.GetOrganizerId(session.SessionId);

            Assert.AreEqual(organizerId, session.EventDefinition.OrganizerId);
        }
Exemple #34
0
        public void GetMaterialOrganizerId_Call_GetResult_Test()
        {
            var context  = new MyEventsContext();
            var material = context.Materials.Include("Session.EventDefinition").FirstOrDefault();

            MaterialRepository target = new MaterialRepository();

            int organizerId = target.GetOrganizerId(material.MaterialId);

            Assert.AreEqual(organizerId, material.Session.EventDefinition.OrganizerId);
        }
Exemple #35
0
        public void GetMaterial_Call_NotFail_Test()
        {
            var context    = new MyEventsContext();
            int materialId = context.Materials.FirstOrDefault().MaterialId;

            IMaterialRepository target = new MaterialRepository();

            Material material = target.Get(materialId);

            Assert.IsNotNull(material);
        }
 public void AddRegisteredUser_NotAdded_AlreadyExists_Test()
 {
     var context = new MyEventsContext();
     var user = context.RegisteredUsers.FirstOrDefault();
     IRegisteredUserRepository target = new RegisteredUserRepository();
     RegisteredUser registeredUser = new RegisteredUser();
     registeredUser.Name = Guid.NewGuid().ToString();
     registeredUser.FacebookId = user.FacebookId;
     registeredUser.Email = Guid.NewGuid().ToString();
     int actual = target.Add(registeredUser);
     Assert.AreEqual(user.RegisteredUserId, actual );
 }
        public void DeleteMaterial_NoExists_NotFail_Test()
        {
            var context = new MyEventsContext();
            var material = context.Materials.FirstOrDefault();
            int expected = context.Materials.Count();

            MaterialRepository target = new MaterialRepository();
            target.Delete(0);

            int actual = context.Materials.Count();

            Assert.AreEqual(expected, actual);
        }
        public void GetMaterial_Call_GetResults_Test()
        {
            var context = new MyEventsContext();
            int sessionId = context.Materials.FirstOrDefault().SessionId;
            int expectedCount = context.Materials.Count(q => q.SessionId == sessionId);

            IMaterialRepository target = new MaterialRepository();

            IEnumerable<Material> results = target.GetAll(sessionId);

            Assert.IsNotNull(results);
            Assert.AreEqual(expectedCount, results.Count());
        }
        public void DeleteSession_NoExists_NotFail_Test()
        {
            var context = new MyEventsContext();
            var session = context.Sessions.FirstOrDefault();
            int expected = context.Sessions.Count();

            ISessionRepository target = new SessionRepository();
            target.Delete(0);

            int actual = context.Sessions.Count();

            Assert.AreEqual(expected, actual);
        }
        public void DeleteComment_NoExists_NotFail_Test()
        {
            var context = new MyEventsContext();
            var comment = context.Comments.FirstOrDefault();
            int expected = context.Comments.Count();

            ICommentRepository target = new CommentRepository();
            target.Delete(0);

            int actual = context.Comments.Count();

            Assert.AreEqual(expected, actual);
        }
        private static List<int> AddAttendee(MyEventsContext context, List<int> eventDefinitionIds, int count)
        {
            List<int> attendeeIds = new List<int>();

            foreach (var eventDefinitionId in eventDefinitionIds)
            {
                for (int i = 0; i < count; i++)
                {
                    attendeeIds.Add(AddAttendee(context, eventDefinitionId));
                }
            }

            return attendeeIds;
        }
        public static void AssemblyCleanup()
        {
            using (var context = new MyEventsContext())
            {
                DeleteAllOrganizers(context);

                Assert.IsTrue(context.Organizers.Count() == 0);
                Assert.IsTrue(context.Attendees.Count() == 0);
                Assert.IsTrue(context.EventDefinitions.Count() == 0);
                Assert.IsTrue(context.Sessions.Count() == 0);
                Assert.IsTrue(context.Materials.Count() == 0);
                Assert.IsTrue(context.Comments.Count() == 0);
            }
        }
        public void AddRegisteredUserToSession_Added_NotFail_Test()
        {
            var context = new MyEventsContext();
            int eventDefinitionId = context.RegisteredUsers.FirstOrDefault().RegisteredUserId;
            int sessionId = context.Sessions.FirstOrDefault().SessionId;

            int expected = context.SessionRegisteredUsers.Count() + 1;

            IRegisteredUserRepository target = new RegisteredUserRepository();
            target.AddRegisteredUserToSession(eventDefinitionId, sessionId);

            int actual = context.SessionRegisteredUsers.Count();

            Assert.AreEqual(expected, actual);
        }
        public void GetAllSessions_Call_CalculateScore_Test()
        {
            var context = new MyEventsContext();
            int eventDefinitionId = context.Sessions.FirstOrDefault().EventDefinitionId;

            int expectedCount = context.Sessions.Count(q => q.EventDefinitionId == eventDefinitionId);

            ISessionRepository target = new SessionRepository();

            IEnumerable<Session> results = target.GetAll(eventDefinitionId);

            Assert.IsNotNull(results);
            Assert.AreEqual(expectedCount, results.Count());

            foreach (var session in results)
                ValidateScore(session.SessionId, session.Score);
        }
        public void AddRegisteredUserToEvent_Added_NotFail_Test()
        {
            var context = new MyEventsContext();
            int registeredUserId = context.RegisteredUsers.First().RegisteredUserId;
            var eventDefinition = context.EventDefinitions.Include("RegisteredUsers")
                .Where(e => !e.RegisteredUsers.Any(r => r.RegisteredUserId == registeredUserId)).First();
            int eventDefinitionId = eventDefinition.EventDefinitionId;
            int expected = eventDefinition.RegisteredUsers.Count() + 1;

            IRegisteredUserRepository target = new RegisteredUserRepository();
            target.AddRegisteredUserToEvent(registeredUserId, eventDefinitionId);

            var contextAfter = new MyEventsContext();
            var eventDefinitionAfter = contextAfter.EventDefinitions.Include("RegisteredUsers").First(e => e.EventDefinitionId == eventDefinitionId);
            int actual = eventDefinitionAfter.RegisteredUsers.Count();

            Assert.AreEqual(expected, actual);
        }
        public static void AssemblyInit(TestContext context)
        {
            int eventDefinitions = 5;
            int sessionsPerEvent = 2;
            int AttendeePerEvent = 2;

            using (var myEventsContext = new MyEventsContext())
            {
                DeleteAllAttendees(myEventsContext);
                DeleteAllOrganizers(myEventsContext);

                List<int> eventIds = AddEvent(myEventsContext, eventDefinitions);
                List<int> sessionIds = AddSession(myEventsContext, eventIds, sessionsPerEvent);
                List<int> attendeeIds = AddAttendee(myEventsContext, eventIds, AttendeePerEvent);
                AddAttendeeToSessions(myEventsContext, attendeeIds, sessionIds);
                AddMaterial(myEventsContext, sessionIds, 10);
                AddComment(myEventsContext, sessionIds, attendeeIds, 10);
            }
        }
        public void AddComment_Added_NotFail_Test()
        {
            var context = new MyEventsContext();
            int sessionId = context.Sessions.FirstOrDefault().SessionId;
            int registeredUserId = context.RegisteredUsers.FirstOrDefault().RegisteredUserId;
            int expected = context.Comments.Count() + 1;

            ICommentRepository target = new CommentRepository();
            Comment comment = new Comment();
            comment.SessionId = sessionId;
            comment.AddedDateTime = DateTime.UtcNow;
            comment.RegisteredUserId = registeredUserId;
            comment.Text = "sample comment";
            target.Add(comment);

            int actual = context.Comments.Count();

            Assert.AreEqual(expected, actual);
        }
        public void AddMaterial_Added_NotFail_Test()
        {
            var context = new MyEventsContext();
            int sessionId = context.Sessions.FirstOrDefault().SessionId;
            int expected = context.Materials.Count() + 1;

            IMaterialRepository target = new MaterialRepository();
            Material material = new Material();
            material.SessionId = sessionId;
            material.Name = Guid.NewGuid().ToString();
            material.ContentType = "image/jpeg";
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            material.Content = encoding.GetBytes("content");

            target.Add(material);

            int actual = context.Materials.Count();

            Assert.AreEqual(expected, actual);
        }
        public void AddRoomPoints_Added_Test()
        {
            var context = new MyEventsContext();

            int eventDefinitionId = context.EventDefinitions.Include("RoomPoints")
                .Where(q => !q.RoomPoints.Any())
                .First().EventDefinitionId;

            List<RoomPoint> points = new List<RoomPoint>()
            {
                new RoomPoint() { EventDefinitionId = eventDefinitionId, PointX = 0, PointY = 0 },
                new RoomPoint() { EventDefinitionId = eventDefinitionId, PointX = 1, PointY = 2 },
                new RoomPoint() { EventDefinitionId = eventDefinitionId, PointX = 3, PointY = 4 },
            };

            IEventDefinitionRepository target = new EventDefinitionRepository();
            target.AddRoomPoints(points);

            int actual = target.GetAllRoomPoints(eventDefinitionId).Count();

            Assert.AreEqual(points.Count(), actual);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="context"></param>
        public void Create(MyEventsContext context)
        {
            _startTime = new System.DateTime(2012, 12, 14, 9, 0, 0);

            var eventDefinition = new EventDefinition()
            {
                Name = "Visual Studio 2012 - Atlanta Launch Event",
                Description =
                    "Discover how Visual Studio 2012 allows you to collaborate better and be more agile. See how it helps you turn big ideas into more compelling apps. Experience how it integrates best practices that accelerate development and deployment.  You’ll enjoy several sessions which will take Visual Studio, Team Foundation Server, and Test Professional through their paces to show off what’s possible with this incredible release!",
                Address = "1125 Sanctuary Pkwy., Alpharetta, GA 30009",
                City = "Atlanta",
                Tags = "Visual Studio 2012, SharePoint",
                TwitterAccount = "@visualstudio",
                RoomNumber = 2,
                Date = _startTime.Date,
                StartTime = _startTime,
                EndTime = _startTime.AddHours(8).AddMinutes(30),
                TimeZoneOffset = 2,
                Logo = CommonInitializer.LoadFile("FakeImages\\usa-atlanta.png"),
                Latitude = 34.0478f,
                Longitude = -84.3120f,
                MapImage = CommonInitializer.LoadFile("FakeImages\\map.png"),
                Sessions = this.Sessions
            };

            //Assign the existing default organizer or add it
            var existsOrganizer = context.RegisteredUsers.Any(ru => ru.FacebookId == CommonInitializer.FakeUserFacebookId);
            if (existsOrganizer)
            {
                RegisteredUser existingOrganizer = context.RegisteredUsers.Single(ru => ru.FacebookId == CommonInitializer.FakeUserFacebookId);
                eventDefinition.OrganizerId = existingOrganizer.RegisteredUserId;
            }
            else
            {
                eventDefinition.Organizer = this.Organizer;
            }

            eventDefinition.RoomPoints = CommonInitializer.GetRoomPoints(eventDefinition.RoomNumber);
            context.EventDefinitions.Add(eventDefinition);
            context.SaveChanges();
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="context"></param>
        public void Create(MyEventsContext context)
        {
            _startTime = new System.DateTime(2012, 12, 5, 9, 0, 0);

            var eventDefinition = new EventDefinition()
            {
                Name = "Visual Studio 2012 - Mexico Launch Event",
                Description =
                    "Discover how Visual Studio 2012 allows you to collaborate better and be more agile. See how it helps you turn big ideas into more compelling apps. Experience how it integrates best practices that accelerate development and deployment.  You’ll enjoy several sessions which will take Visual Studio, Team Foundation Server, and Test Professional through their paces to show off what’s possible with this incredible release!",
                Address = "Av. Vasco de Quiroga 1700, Del Álvaro Obregón, Mexico D.F. 01210, MEXICO",
                City = "Mexico D.F.",
                Tags = "Visual Studio 2012, .NET 4.5, Windows 8, Architecture",
                TwitterAccount = "@visualstudio",
                RoomNumber = 2,
                Date = _startTime.Date,
                StartTime = _startTime,
                EndTime = _startTime.AddHours(8).AddMinutes(30),
                TimeZoneOffset = 2,
                Logo = CommonInitializer.LoadFile("FakeImages\\mexico.png"),
                Latitude = 19.3664f,
                Longitude = -99.2645f,
                MapImage = CommonInitializer.LoadFile("FakeImages\\map.png"),
                Sessions = this.Sessions
            };

            //Assign the existing default organizer or add it
            var existsOrganizer = context.RegisteredUsers.Any(ru => ru.FacebookId == CommonInitializer.FakeUserFacebookId);
            if (existsOrganizer)
            {
                RegisteredUser existingOrganizer = context.RegisteredUsers.Single(ru => ru.FacebookId == CommonInitializer.FakeUserFacebookId);
                eventDefinition.OrganizerId = existingOrganizer.RegisteredUserId;
            }
            else
            {
                eventDefinition.Organizer = this.Organizer;
            }

            eventDefinition.RoomPoints = CommonInitializer.GetRoomPoints(eventDefinition.RoomNumber);
            context.EventDefinitions.Add(eventDefinition);
            context.SaveChanges();
        }
        public void GetAllSessions_Call_NotFail_Test()
        {
            var context = new MyEventsContext();
            int eventDefinitionId = context.Sessions.FirstOrDefault().EventDefinitionId;

            int expectedCount = context.Sessions.Count(q => q.EventDefinitionId == eventDefinitionId);

            ISessionRepository target = new SessionRepository();

            IEnumerable<Session> results = target.GetAll(eventDefinitionId);

            Assert.IsNotNull(results);
            Assert.AreEqual(expectedCount, results.Count());
        }
        public void GetRegisteredUser_Call_GetResults_Test()
        {
            var context = new MyEventsContext();
            string registeredFacebookId = context.RegisteredUsers.FirstOrDefault().FacebookId;

            IRegisteredUserRepository target = new RegisteredUserRepository();
            RegisteredUser registeredUser = target.Get(registeredFacebookId);

            Assert.IsNotNull(registeredUser);
            Assert.AreEqual(registeredFacebookId, registeredUser.FacebookId);
        }
        private void ValidateScore(int sessionId, double score)
        {
            var context = new MyEventsContext();
            var session = context.Sessions.Include("SessionRegisteredUsers").FirstOrDefault(q => q.SessionId == sessionId);
            double expected = session.SessionRegisteredUsers.Where(sr => sr.Rated).Average(sr => sr.Score);

            Assert.AreEqual(expected, session.Score);
        }
        public void GetSessions_Call_GetResults_NotFail_Test()
        {
            var context = new MyEventsContext();

            var session = context.Sessions
                .Include("SessionRegisteredUsers")
                .Where(q => q.SessionRegisteredUsers.Any())
                .FirstOrDefault();

            int sessionId = session.EventDefinitionId;
            int registeredUserId = session.SessionRegisteredUsers.First().RegisteredUserId;
            IRegisteredUserRepository target = new RegisteredUserRepository();

            IEnumerable<Session> results = target.GetSessions(session.EventDefinitionId, registeredUserId);

            Assert.IsNotNull(results);
        }
        public void UpdateSession_Updated_NotFail_Test()
        {
            var context = new MyEventsContext();
            var sessionToUpdate = context.Sessions.FirstOrDefault();

            int expected = context.Sessions.Count() + 1;

            ISessionRepository target = new SessionRepository();

            sessionToUpdate.Title = Guid.NewGuid().ToString();
            target.Update(sessionToUpdate);

            var sessionUpdated = context.Sessions.FirstOrDefault(q => q.SessionId == sessionToUpdate.SessionId);

            Assert.AreEqual(sessionToUpdate.Title, sessionUpdated.Title);
        }
        public void GetSession_Call_NotFail_Test()
        {
            var context = new MyEventsContext();
            int sessionId = context.Sessions.FirstOrDefault().SessionId;

            ISessionRepository target = new SessionRepository();

            Session result = target.Get(sessionId);

            Assert.IsNotNull(result);
            Assert.AreEqual(sessionId, result.SessionId);
        }
        public void GetSession_CalculateScore_Test()
        {
            var context = new MyEventsContext();
            var session = context.Sessions.Include("SessionRegisteredUsers").FirstOrDefault(q => q.SessionRegisteredUsers.Any());
            double expected = session.SessionRegisteredUsers.Where(sr => sr.Rated).Average(sr => sr.Score);

            ISessionRepository target = new SessionRepository();

            Session result = target.Get(session.SessionId);

            Assert.IsNotNull(result);
            Assert.AreEqual(expected, result.Score);
        }
        public void GetSessionOrganizerId_Call_GetResult_Test()
        {
            var context = new MyEventsContext();
            var session = context.Sessions.Include("EventDefinition").FirstOrDefault();

            ISessionRepository target = new SessionRepository();

            int organizerId = target.GetOrganizerId(session.SessionId);

            Assert.AreEqual(organizerId, session.EventDefinition.OrganizerId);
        }
        public void GetMaterial_Call_NotFail_Test()
        {
            var context = new MyEventsContext();
            int materialId = context.Materials.FirstOrDefault().MaterialId;

            IMaterialRepository target = new MaterialRepository();

            Material material = target.Get(materialId);

            Assert.IsNotNull(material);
        }