Skip to content

Commit

Permalink
Add more tests for component model (#7221)
Browse files Browse the repository at this point in the history
  • Loading branch information
burcuq authored Jul 26, 2024
1 parent bad8272 commit 6a18237
Show file tree
Hide file tree
Showing 48 changed files with 4,878 additions and 0 deletions.
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);
}
}
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);
}
}
}

Loading

0 comments on commit 6a18237

Please sign in to comment.