コード例 #1
0
        public void DeleteCollection_CollectionHasNElements_AllElementsDeleted(int elementCount)
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            var collection = AddCollection(userId, elementCount);

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                result         = controller.DeleteCollection(collection.Id);
            });

            //Assert
            result.Should().BeOfType <OkResult>();
            InTransaction(context =>
            {
                var elements = context.Element.ToList();
                elements.Should().BeEmpty();
            });
        }
コード例 #2
0
        public void UpdateCollection_CollectionNotOwnedByUserButHasEditRights_Ok()
        {
            //Arrange
            var userId1 = NewGuid;
            var userId2 = NewGuid;

            AddUser(userId1);
            AddUser(userId2);
            var collection = AddCollection(userId1, 5);

            ShareCollection(collection.Id, userId2, true);
            var collectionData = new CollectionUpdateData {
                Description = NewGuid, Name = NewGuid
            };

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId2), getCollectionConfigurationProviderMock());
                result         = controller.UpdateCollection(collection.Id, collectionData);
            });

            //Assert
            result.Should().BeOfType <OkResult>();
        }
コード例 #3
0
        public void DeleteCollection_CollectionIsSaved_SavedCollectionDeleted()
        {
            //Arrange
            var userId1 = NewGuid;
            var userId2 = NewGuid;

            AddUser(userId1);
            AddUser(userId2);
            var collection = AddCollection(userId1, 5);

            SaveCollection(collection.Id, userId2);

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId1), getCollectionConfigurationProviderMock());
                result         = controller.DeleteCollection(collection.Id);
            });

            //Assert
            result.Should().BeOfType <OkResult>();
            InTransaction(context =>
            {
                var savedCollections = context.SavedCollection.ToList();
                savedCollections.Should().BeEmpty();
            });
        }
コード例 #4
0
        public void MakePublic_CollaboratorHasEditRights_Forbidden()
        {
            //Arrange
            var userId1 = NewGuid;
            var userId2 = NewGuid;

            AddUser(userId1);
            AddUser(userId2);
            var collection = AddCollection(userId1, 5);

            ShareCollection(collection.Id, userId2, true);

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId2), getCollectionConfigurationProviderMock());
                result         = controller.MakePublic(collection.Id);
            });

            //Assert
            result.Should().BeOfType <ForbidResult>();
            InTransaction(context =>
            {
                context.Collection
                .Single(c => c.Id == collection.Id)
                .IsPublic.Should().BeFalse();
            });
        }
コード例 #5
0
        public void UpdateCollection_NewDescriptionProvided_CollectionDescriptionUpdated(string initialDescription, string newDescription)
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            var collection     = AddCollection(userId, 5, description: initialDescription);
            var collectionData = new CollectionUpdateData {
                Description = newDescription
            };

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                result         = controller.UpdateCollection(collection.Id, collectionData);
            });

            //Assert
            result.Should().BeOfType <OkResult>();
            InTransaction(context =>
            {
                var collectionFromContext = context.Collection.Single();
                collectionFromContext.Description.Should().Be(newDescription);
            });
        }
コード例 #6
0
        public void UpdateCollection_MultipleFieldsUpdate_ProperlyUpdated(string newName, string newDescription)
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            var collection     = AddCollection(userId, 5);
            var collectionData = new CollectionUpdateData {
                Description = newDescription, Name = newName
            };

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                result         = controller.UpdateCollection(collection.Id, collectionData);
            });

            //Assert
            result.Should().BeOfType <OkResult>();
            InTransaction(context =>
            {
                var collectionFromContext = context.Collection.Single();
                collectionFromContext.Description.Should().Be(newDescription ?? collection.Description);
                collectionFromContext.Name.Should().Be(newName ?? collection.Name);
            });
        }
コード例 #7
0
        public void AddCollection_PublicCollection_CollectionAssignedToUser(string collectionName)
        {
            //Arrange
            var collectionData = new CollectionCreationData {
                IsPublic = true, Name = collectionName
            };
            var userId = NewGuid;

            AddUser(userId);

            //Act
            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                controller.AddCollection(collectionData);
            });

            //Assert
            InTransaction(context =>
            {
                var collectionFromContext = context.Collection.SingleOrDefault(c => c.Name == collectionName);
                var collectionFromUser    = context.ApplicationUser
                                            .Include(u => u.Collections)
                                            .Single(u => u.Id == userId).Collections
                                            .Single(c => c.Name == collectionName);
                collectionFromContext.Should().BeEquivalentTo(collectionFromUser);
                collectionFromContext.OwnerId.Should().Be(userId);
            });
        }
コード例 #8
0
        public void UpdateCollection_NewNameProvided_CollectionNameUpdated(string initialName, string newName)
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            var collection     = AddCollection(userId, 5, initialName);
            var collectionData = new CollectionUpdateData {
                Name = newName
            };

            //Act
            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                controller.UpdateCollection(collection.Id, collectionData);
            });

            //Assert
            InTransaction(context =>
            {
                var collectionFromContext = context.Collection.Single();
                collectionFromContext.Name.Should().Be(newName);
            });
        }
コード例 #9
0
        public void AddCollection_PublicCollection_CollectionAddedToDb(string collectionName)
        {
            //Arrange
            var collectionData = new CollectionCreationData {
                IsPublic = true, Name = collectionName
            };
            var userId = NewGuid;

            AddUser(userId);

            //Act
            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                controller.AddCollection(collectionData);
            });

            //Assert
            InTransaction(context =>
            {
                var collection = context.Collection.SingleOrDefault(c => c.Name == collectionName);
                collection.Should().NotBeNull();
                collection.IsPublic.Should().BeTrue();
            });
        }
コード例 #10
0
        public void MakePublic_OnPublicCollection_OkNoChanges()
        {
            //Arrange
            var userId1 = NewGuid;

            AddUser(userId1);
            var collection = AddCollection(userId1, 5);

            InTransaction(context =>
            {
                context.Collection.Single(c => c.Id == collection.Id).IsPublic = true;
                context.SaveChanges();
            });

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId1), getCollectionConfigurationProviderMock());
                result         = controller.MakePublic(collection.Id);
            });

            //Assert
            result.Should().BeOfType <OkResult>();
            InTransaction(context =>
            {
                context.Collection.Single(c => c.Id == collection.Id).IsPublic.Should().BeTrue();
            });
        }
コード例 #11
0
        public void DeleteCollection_UserHasMultipleCollections_Only1CollectionDeleted()
        {
            //Arrange
            var userId = NewGuid;
            var collectionToDeleteName = NewGuid;

            AddUser(userId);
            var collection = AddCollection(userId, 5, name: collectionToDeleteName);

            for (var i = 0; i < 10; i++)
            {
                AddCollection(userId, 5);
            }

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                result         = controller.DeleteCollection(collection.Id);
            });

            //Assert
            result.Should().BeOfType <OkResult>();
            InTransaction(context =>
            {
                var collections = context.Collection.ToList();
                collections.Should().HaveCount(10);
                collections.Where(c => c.Id == collection.Id).Should().HaveCount(0);
                collections.Where(c => c.Name == collectionToDeleteName).Should().HaveCount(0);
            });
        }
コード例 #12
0
        public void ResultNotNull()
        {
            // Arrange
            CollectionsController controller = new CollectionsController(context);
            // Act
            IActionResult result = controller.GetCollections() as IActionResult;

            // Assert
            Assert.NotNull(result);
        }
コード例 #13
0
        public CollectionsControllerTests()
        {
            _mockUserService       = new Mock <IUserService>();
            _mockCollectionService = new Mock <ICollectionService>();
            _mockCollectionService.Setup(c => c.Save()).ReturnsAsync(true);
            _mockUserService.Setup(u => u.UserExists(It.IsAny <Guid>())).ReturnsAsync(true);

            _controller = new CollectionsController(_mockCollectionService.Object, _mockUserService.Object, _mapper);
            SetupTestController(_controller);

            _builder                  = new CollectionTestBuilder();
            resourceParameters        = new CollectionsResourceParameters();
            resourceParameters.Fields = "Id, Type";
        }
コード例 #14
0
        public void GetUserCollections_UserWithoutCollections_NoCollections(string userId)
        {
            //Arrange
            AddUser(userId);

            //Act
            ICollection <Collection> collections = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                collections    = controller.GetUserCollections();
            });

            //Assert
            collections.Should().BeEmpty();
        }
コード例 #15
0
        public void MakePublic_CollectionDoesNotExist_NotFound()
        {
            //Arrange
            var userId1 = NewGuid;

            AddUser(userId1);

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId1), getCollectionConfigurationProviderMock());
                result         = controller.MakePublic(1010);
            });

            //Assert
            result.Should().BeOfType <NotFoundResult>();
        }
コード例 #16
0
        public void GetUserCollections_CollectionHasElements_ElementsReturned(int numberOfElements)
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            AddCollection(userId, numberOfElements);

            //Act
            ICollection <Collection> collections = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                collections    = controller.GetUserCollections();
            });

            //Assert
            collections.Single().Elements.Should().HaveCount(numberOfElements);
        }
コード例 #17
0
        public void DeleteCollection_CollectionNotOwnedByUser_Forbidden()
        {
            //Arrange
            var userId1 = NewGuid;
            var userId2 = NewGuid;

            AddUser(userId1);
            AddUser(userId2);
            var collection = AddCollection(userId1, 5);

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId2), getCollectionConfigurationProviderMock());
                result         = controller.DeleteCollection(collection.Id);
            });

            //Assert
            result.Should().BeOfType <ForbidResult>();
        }
コード例 #18
0
        public void UpdateCollection_CollectionNotOwnedByUserAndNoEditRights_Forbidden()
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            var collection     = AddCollection(userId, 5);
            var collectionData = new CollectionUpdateData {
                Description = NewGuid, Name = NewGuid
            };

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(NewGuid), getCollectionConfigurationProviderMock());
                result         = controller.UpdateCollection(collection.Id, collectionData);
            });

            //Assert
            result.Should().BeOfType <ForbidResult>();
        }
コード例 #19
0
        public void GetUserCollections_CollectionsWithoutElements_NoElementsReturned(int numberOfCollections)
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            for (var i = 0; i < numberOfCollections; i++)
            {
                AddCollection(userId, 0);
            }

            //Act
            ICollection <Collection> collections = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                collections    = controller.GetUserCollections();
            });

            //Assert
            collections.SelectMany(c => c.Elements).Should().BeEmpty();
        }
コード例 #20
0
        public void UpdateCollection_CollectionDoesntExist_NotFound()
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            var collection     = AddCollection(userId, 5);
            var collectionData = new CollectionUpdateData {
                Description = NewGuid, Name = NewGuid
            };

            //Act
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                result         = controller.UpdateCollection(collection.Id + 1, collectionData);
            });

            //Assert
            result.Should().BeOfType <NotFoundResult>();
        }
コード例 #21
0
        public void GetUserCollections_UserWithXCollections_XCollectionsReturned(int numberOfCollections)
        {
            //Arrange
            var userId = NewGuid;

            AddUser(userId);
            for (var i = 0; i < numberOfCollections; i++)
            {
                AddCollection(userId, 0);
            }

            //Act
            ICollection <Collection> collections = null;

            InTransaction(context =>
            {
                var controller = new CollectionsController(context, GetUserProviderMock(userId), getCollectionConfigurationProviderMock());
                collections    = controller.GetUserCollections();
            });

            //Assert
            collections.Should().HaveCount(numberOfCollections);
        }
コード例 #22
0
        public CollectionsActionView(CollectionsAction Action, ref CollectionsController Controller, Web_Collections_Model obj)
        {
            InitializeComponent();

            action     = Action;
            controller = Controller;
            if (obj != null)
            {
                Obj = new Web_Collections_Model()
                {
                    id           = obj.id,
                    content      = obj.content,
                    createdDate  = obj.createdDate,
                    description  = obj.description,
                    featureimage = obj.featureimage,
                    name         = obj.name,
                    relatedmenu  = obj.relatedmenu,
                    title        = obj.title,
                    isdraft      = obj.isdraft
                };
            }
            this.Load += CollectionsActionView_Load;
        }
コード例 #23
0
 void Awake()
 {
     collectionsController = CollectionsController.Instance;
 }
コード例 #24
0
 public void Can_retrieve_all_collections()
 {
     var controller     = new CollectionsController();
     var allCollections = controller.AllAsync(String.Empty);
 }
 public TestCollectionsApiController()
 {
     controller = new CollectionsController(new BookmarkerTestContext());
     controller.ControllerContext.Configuration = new HttpConfiguration();
     controller.Request = new HttpRequestMessage();
 }