Esempio n. 1
0
        public void GetResourceTypeNameForType_fails_when_getting_unregistered_type()
        {
            // Arrange
            var pluralizationService = new PluralizationService();
            var mm = new ModelManager(pluralizationService);

            // Act
            Action action = () =>
            {
                mm.GetResourceTypeNameForType(typeof(Post));
            };

            // Assert
            action.ShouldThrow<InvalidOperationException>().WithMessage("The type `JSONAPI.Tests.Models.Post` was not registered.");
        }
Esempio n. 2
0
        public void GetResourceTypeName_returns_correct_value_for_registered_types()
        {
            // Arrange
            var pluralizationService = new PluralizationService();
            var mm = new ModelManager(pluralizationService);
            mm.RegisterResourceType(typeof(Post));
            mm.RegisterResourceType(typeof(Author));
            mm.RegisterResourceType(typeof(Comment));
            mm.RegisterResourceType(typeof(UserGroup));

            // Act
            var postKey = mm.GetResourceTypeNameForType(typeof(Post));
            var authorKey = mm.GetResourceTypeNameForType(typeof(Author));
            var commentKey = mm.GetResourceTypeNameForType(typeof(Comment));
            var manyCommentKey = mm.GetResourceTypeNameForType(typeof(Comment[]));
            var userGroupsKey = mm.GetResourceTypeNameForType(typeof(UserGroup));

            // Assert
            Assert.AreEqual("posts", postKey);
            Assert.AreEqual("authors", authorKey);
            Assert.AreEqual("comments", commentKey);
            Assert.AreEqual("comments", manyCommentKey);
            Assert.AreEqual("user-groups", userGroupsKey);
        }
Esempio n. 3
0
        public void GetResourceTypeNameForType_gets_name_for_closest_registered_base_type_for_unregistered_type()
        {
            // Arrange
            var pluralizationService = new PluralizationService();
            var mm = new ModelManager(pluralizationService);
            mm.RegisterResourceType(typeof(Post));

            // Act
            var resourceTypeName = mm.GetResourceTypeNameForType(typeof(DerivedPost));

            // Assert
            resourceTypeName.Should().Be("posts");
        }