-
Notifications
You must be signed in to change notification settings - Fork 801
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add more tests for component model (#7221)
- Loading branch information
Showing
48 changed files
with
4,878 additions
and
0 deletions.
There are no files selected for viewing
56 changes: 56 additions & 0 deletions
56
tests/Serenity.Net.Core.Tests/ComponentModel/Navigation/NavigationGroupAttributeTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
using Serenity.Navigation; | ||
|
||
namespace Serenity.Tests.ComponentModel; | ||
|
||
public class NavigationGroupAttributeTests | ||
{ | ||
[Fact] | ||
public void Constructor_SetsPropertiesCorrectly_WithAllParameters() | ||
{ | ||
int order = 1; | ||
string title = "GroupTitle"; | ||
string icon = "icon-class"; | ||
var attribute = new NavigationGroupAttribute(order, title, icon); | ||
Assert.Equal(order, attribute.Order); | ||
Assert.Equal(title, attribute.Title); | ||
Assert.Equal(icon, attribute.IconClass); | ||
} | ||
|
||
[Fact] | ||
public void Constructor_SetsPropertiesCorrectly_WithTitleAndIcon() | ||
{ | ||
string title = "GroupTitle"; | ||
string icon = "icon-class"; | ||
var attribute = new NavigationGroupAttribute(title, icon); | ||
Assert.Equal(int.MaxValue, attribute.Order); | ||
Assert.Equal(title, attribute.Title); | ||
Assert.Equal(icon, attribute.IconClass); | ||
} | ||
|
||
[Fact] | ||
public void Constructor_SetsPropertiesCorrectly_WithTitleOnly() | ||
{ | ||
string title = "GroupTitle"; | ||
var attribute = new NavigationGroupAttribute(title); | ||
Assert.Equal(int.MaxValue, attribute.Order); | ||
Assert.Equal(title, attribute.Title); | ||
Assert.Null(attribute.IconClass); | ||
} | ||
|
||
[Fact] | ||
public void IncludeProperty_CanBeSetAndRetrieved() | ||
{ | ||
var attribute = new NavigationGroupAttribute("Title"); | ||
string[] includePaths = { "B/", "C/" }; | ||
attribute.Include = includePaths; | ||
Assert.Equal(includePaths, attribute.Include); | ||
} | ||
|
||
[Fact] | ||
public void DefaultProperty_CanBeSetAndRetrieved() | ||
{ | ||
var attribute = new NavigationGroupAttribute("Title"); | ||
attribute.Default = true; | ||
Assert.True(attribute.Default); | ||
} | ||
} |
232 changes: 232 additions & 0 deletions
232
tests/Serenity.Net.Core.Tests/ComponentModel/Navigation/NavigationItemAttributeTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,232 @@ | ||
using Serenity.Navigation; | ||
|
||
|
||
namespace Serenity.Tests.ComponentModel | ||
{ | ||
public class NavigationItemAttributeTests | ||
{ | ||
public class MyNavigationItemAttribute(int order, string path, string url, object permission, string icon) | ||
: NavigationItemAttribute(order, path, url, permission, icon) | ||
{ | ||
} | ||
|
||
[Fact] | ||
public void Constructor_InitializesPropertiesCorrectly_WithPathContainingSlash() | ||
{ | ||
|
||
int order = 1; | ||
string path = "category/item"; | ||
string url = "http://example.com"; | ||
object permission = "read"; | ||
string icon = "icon-class"; | ||
var attribute = new MyNavigationItemAttribute(order, path, url, permission, icon); | ||
Assert.Equal("category", attribute.Category); | ||
Assert.Equal("item", attribute.Title); | ||
Assert.Equal(order, attribute.Order); | ||
Assert.Equal("read", attribute.Permission); | ||
Assert.Equal("icon-class", attribute.IconClass); | ||
Assert.Equal(url, attribute.Url); | ||
} | ||
|
||
[Fact] | ||
public void Constructor_InitializesPropertiesCorrectly_WithPathWithoutSlash() | ||
{ | ||
|
||
int order = 2; | ||
string path = "item"; | ||
string url = "http://example.com"; | ||
object permission = "write"; | ||
string icon = "icon-class"; | ||
var attribute = new MyNavigationItemAttribute(order, path, url, permission, icon); | ||
Assert.Null(attribute.Category); | ||
Assert.Equal("item", attribute.Title); | ||
Assert.Equal(order, attribute.Order); | ||
Assert.Equal("write", attribute.Permission); | ||
Assert.Equal("icon-class", attribute.IconClass); | ||
Assert.Equal(url, attribute.Url); | ||
} | ||
|
||
[Fact] | ||
public void Constructor_InitializesPropertiesCorrectly_WithNullPath() | ||
{ | ||
int order = 3; | ||
string path = null; | ||
string url = "http://example.com"; | ||
object permission = null; | ||
string icon = "icon-class"; | ||
var attribute = new MyNavigationItemAttribute(order, path, url, permission, icon); | ||
Assert.Null(attribute.Category); | ||
Assert.Equal("", attribute.Title); | ||
Assert.Equal(order, attribute.Order); | ||
Assert.Null(attribute.Permission); | ||
Assert.Equal("icon-class", attribute.IconClass); | ||
Assert.Equal(url, attribute.Url); | ||
} | ||
|
||
[Fact] | ||
public void Constructor_InitializesPropertiesCorrectly_WithEmptyPath() | ||
{ | ||
int order = 4; | ||
string path = ""; | ||
string url = "http://example.com"; | ||
object permission = null; | ||
string icon = "icon-class"; | ||
var attribute = new MyNavigationItemAttribute(order, path, url, permission, icon); | ||
Assert.Null(attribute.Category); | ||
Assert.Equal("", attribute.Title); | ||
Assert.Equal(order, attribute.Order); | ||
Assert.Null(attribute.Permission); | ||
Assert.Equal("icon-class", attribute.IconClass); | ||
Assert.Equal(url, attribute.Url); | ||
} | ||
|
||
[Fact] | ||
public void Title_CanBeSet() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
Title = "sometext" | ||
}; | ||
Assert.Equal("sometext", attribute.Title); | ||
} | ||
|
||
[Fact] | ||
public void Title_CanBeSet_ToNull() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
Title = null | ||
}; | ||
Assert.Null(attribute.Title); | ||
} | ||
|
||
[Fact] | ||
public void FullPath_CanBeSet() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
FullPath = "sometext" | ||
}; | ||
Assert.Equal("sometext", attribute.FullPath); | ||
} | ||
|
||
[Fact] | ||
public void FullPath_CanBeSet_ToNull() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
FullPath = null | ||
}; | ||
Assert.Null(attribute.FullPath); | ||
} | ||
|
||
[Fact] | ||
public void Category_CanBeSet() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
Category = "sometext" | ||
}; | ||
Assert.Equal("sometext", attribute.Category); | ||
} | ||
|
||
[Fact] | ||
public void Category_CanBeSet_ToNull() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
Category = null | ||
}; | ||
Assert.Null(attribute.Category); | ||
} | ||
|
||
[Fact] | ||
public void IconClass_IsNull_ByDefault() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, null); | ||
Assert.Null(attribute.IconClass); | ||
} | ||
|
||
[Fact] | ||
public void IconClass_CanBeSet() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
IconClass = "sometext" | ||
}; | ||
Assert.Equal("sometext", attribute.IconClass); | ||
} | ||
|
||
[Fact] | ||
public void IconClass_CanBeSet_ToNull() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
IconClass = null | ||
}; | ||
Assert.Null(attribute.IconClass); | ||
} | ||
|
||
[Fact] | ||
public void ItemClass_CanBeSet() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
ItemClass = "sometext" | ||
}; | ||
Assert.Equal("sometext", attribute.ItemClass); | ||
} | ||
|
||
[Fact] | ||
public void ItemClass_CanBeSet_ToNull() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
ItemClass = null | ||
}; | ||
Assert.Null(attribute.ItemClass); | ||
} | ||
|
||
|
||
[Fact] | ||
public void Url_CanBeSet() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
Url = "sometext" | ||
}; | ||
Assert.Equal("sometext", attribute.Url); | ||
} | ||
|
||
[Fact] | ||
public void Url_CanBeSet_ToNull() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
Url = null | ||
}; | ||
Assert.Null(attribute.Url); | ||
} | ||
|
||
[Fact] | ||
public void Target_CanBeSet() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
Target = "sometext" | ||
}; | ||
Assert.Equal("sometext", attribute.Target); | ||
} | ||
|
||
[Fact] | ||
public void Target_CanBeSet_ToNull() | ||
{ | ||
var attribute = new MyNavigationItemAttribute(1, "path", null, null, "icon") | ||
{ | ||
Target = null | ||
}; | ||
Assert.Null(attribute.Target); | ||
} | ||
} | ||
} | ||
|
Oops, something went wrong.