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."); }
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); }
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"); }