public void PostMaterial_NotFail_Test()
        {
            bool called = false;
            var expectedmaterial = new Material() { MaterialId = 1 };
            int organizerId = 10;

            ISessionRepository sessionRepository = new StubISessionRepository()
            {
                GetOrganizerIdInt32 = (sessionId) =>
                {
                    return organizerId;
                }
            };

            IMaterialRepository materialRepository = new StubIMaterialRepository()
            {
                AddMaterial = material =>
                {
                    Assert.AreEqual(expectedmaterial.MaterialId, material.MaterialId);
                    called = true;
                    return expectedmaterial.MaterialId;
                },
                GetInt32 = materialId =>
                {
                    return expectedmaterial;
                }
            };

            using (ShimsContext.Create())
            {
                MyEvents.Api.Authentication.Fakes.ShimMyEventsToken myeventToken = new Authentication.Fakes.ShimMyEventsToken();
                myeventToken.RegisteredUserIdGet = () => { return organizerId; };
                ShimMyEventsToken.GetTokenFromHeader = () => { return myeventToken; };

                var target = new MaterialsController(materialRepository, sessionRepository);

                var actual = target.Post(expectedmaterial);

                Assert.IsTrue(called);
                Assert.AreEqual(expectedmaterial.MaterialId, actual);
            }
        }
        public void PostMaterial_UnauthorizedException_Test()
        {
            var expectedmaterial = new Material() { MaterialId = 1 };
            int organizerId = 10;

            ISessionRepository sessionRepository = new StubISessionRepository()
            {
                GetOrganizerIdInt32 = (sessionId) =>
                {
                    return organizerId;
                }
            };

            IMaterialRepository materialRepository = new StubIMaterialRepository()
            {
                GetInt32 = materialId =>
                {
                    return expectedmaterial;
                }
            };

            using (ShimsContext.Create())
            {
                MyEvents.Api.Authentication.Fakes.ShimMyEventsToken myeventToken = new Authentication.Fakes.ShimMyEventsToken();
                myeventToken.RegisteredUserIdGet = () => { return 10000; };
                ShimMyEventsToken.GetTokenFromHeader = () => { return myeventToken; };

                var target = new MaterialsController(materialRepository, sessionRepository);

                var actual = target.Post(expectedmaterial);
            }
        }
        public void PostMaterial_ArgumentNullException_Test()
        {
            ICommentRepository commentRepository = new StubICommentRepository();
            IMaterialRepository materialRepository = new StubIMaterialRepository();
            IEventDefinitionRepository eventRepository = new StubIEventDefinitionRepository();
            ISessionRepository sessionRepository = new StubISessionRepository();

            var target = new MaterialsController(materialRepository, sessionRepository);

            target.Post(null);
        }