Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions NGitLab.Mock.Tests/BadgesMockTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
using NGitLab.Mock.Config;
using NGitLab.Models;
using NUnit.Framework;

namespace NGitLab.Mock.Tests;

public class BadgesMockTests
{
[Test]
public void Test_project_badge_name_is_set_on_create_and_update()
{
using var server = new GitLabConfig()
.WithUser("user1", isDefault: true)
.WithProject("Test", id: 1, addDefaultUserAsMaintainer: true)
.BuildServer();
var badgeClient = server.CreateClient().GetProjectBadgeClient(1);

var badge = badgeClient.Create(
new BadgeCreate
{
Name = "created",
LinkUrl = "http://dummy/a.html",
ImageUrl = "http://dummy/a.png",
}
);
Assert.That(badge.Name, Is.EqualTo("created"));

badge = badgeClient.Update(
badge.Id,
new BadgeUpdate
{
Name = "updated",
LinkUrl = "http://dummy/b.html",
ImageUrl = "http://dummy/b.png",
}
);
Assert.That(badge.Name, Is.EqualTo("updated"));
Assert.That(badgeClient[badge.Id].Name, Is.EqualTo("updated"));
}

[Test]
public void Test_group_badge_name_is_set_on_create_and_update()
{
using var server = new GitLabConfig()
.WithUser("user1", isDefault: true)
.WithGroup("group1", id: 1, addDefaultUserAsMaintainer: true)
.BuildServer();
var badgeClient = server.CreateClient().GetGroupBadgeClient(1);

var badge = badgeClient.Create(
new BadgeCreate
{
Name = "created",
LinkUrl = "http://dummy/a.html",
ImageUrl = "http://dummy/a.png",
}
);
Assert.That(badge.Name, Is.EqualTo("created"));

badge = badgeClient.Update(
badge.Id,
new BadgeUpdate
{
Name = "updated",
LinkUrl = "http://dummy/b.html",
ImageUrl = "http://dummy/b.png",
}
);
Assert.That(badge.Name, Is.EqualTo("updated"));
Assert.That(badgeClient[badge.Id].Name, Is.EqualTo("updated"));
}
}
3 changes: 3 additions & 0 deletions NGitLab.Mock/Badge.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ public sealed class Badge : GitLabObject
{
public long Id { get; set; }

public string Name { get; set; }

public string LinkUrl { get; set; }

public string ImageUrl { get; set; }
Expand All @@ -21,6 +23,7 @@ public Models.Badge ToBadgeModel()
return new Models.Badge
{
Id = Id,
Name = Name,
ImageUrl = ImageUrl,
Kind = Kind,
LinkUrl = LinkUrl,
Expand Down
6 changes: 6 additions & 0 deletions NGitLab.Mock/BadgeCollection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,15 @@ public override void Add(Badge item)
}

public Badge Add(string linkUrl, string imageUrl)
{
return Add(name: null, linkUrl, imageUrl);
}

public Badge Add(string name, string linkUrl, string imageUrl)
Comment thread
jasonwoods-7 marked this conversation as resolved.
{
var badge = new Badge
{
Name = name,
LinkUrl = linkUrl,
ImageUrl = imageUrl,
};
Expand Down
3 changes: 2 additions & 1 deletion NGitLab.Mock/Clients/GroupBadgeClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public Models.Badge Create(BadgeCreate badge)

using (Context.BeginOperationScope())
{
var createdBadge = GetGroup(_groupId, GroupPermission.Edit).Badges.Add(badge.LinkUrl, badge.ImageUrl);
var createdBadge = GetGroup(_groupId, GroupPermission.Edit).Badges.Add(badge.Name, badge.LinkUrl, badge.ImageUrl);
return createdBadge.ToBadgeModel();
}
}
Expand Down Expand Up @@ -79,6 +79,7 @@ public Models.Badge Update(long id, BadgeUpdate badge)
throw GitLabException.NotFound($"Badge with id '{id}' does not exist in group with id '{_groupId}'");
}

badgeToUpdate.Name = badge.Name;
badgeToUpdate.LinkUrl = badge.LinkUrl;
badgeToUpdate.ImageUrl = badge.ImageUrl;
return badgeToUpdate.ToBadgeModel();
Expand Down
3 changes: 2 additions & 1 deletion NGitLab.Mock/Clients/ProjectBadgeClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public Models.Badge Create(BadgeCreate badge)

using (Context.BeginOperationScope())
{
var createdBadge = GetProject(_projectId, ProjectPermission.Edit).Badges.Add(badge.LinkUrl, badge.ImageUrl);
var createdBadge = GetProject(_projectId, ProjectPermission.Edit).Badges.Add(badge.Name, badge.LinkUrl, badge.ImageUrl);
return createdBadge.ToBadgeModel();
}
}
Expand Down Expand Up @@ -92,6 +92,7 @@ public Models.Badge Update(long id, BadgeUpdate badge)
throw GitLabException.NotFound($"Badge with id '{id}' does not exist in project with id '{_projectId}'");
}

badgeToUpdate.Name = badge.Name;
badgeToUpdate.LinkUrl = badge.LinkUrl;
badgeToUpdate.ImageUrl = badge.ImageUrl;
return badgeToUpdate.ToBadgeModel();
Expand Down
3 changes: 3 additions & 0 deletions NGitLab.Mock/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,16 @@ NGitLab.Mock.Badge.ImageUrl.set -> void
NGitLab.Mock.Badge.Kind.get -> NGitLab.Models.BadgeKind
NGitLab.Mock.Badge.LinkUrl.get -> string
NGitLab.Mock.Badge.LinkUrl.set -> void
NGitLab.Mock.Badge.Name.get -> string
NGitLab.Mock.Badge.Name.set -> void
NGitLab.Mock.Badge.RenderedImageUrl.get -> string
NGitLab.Mock.Badge.RenderedImageUrl.set -> void
NGitLab.Mock.Badge.RenderedLinkUrl.get -> string
NGitLab.Mock.Badge.RenderedLinkUrl.set -> void
NGitLab.Mock.Badge.ToBadgeModel() -> NGitLab.Models.Badge
NGitLab.Mock.BadgeCollection
NGitLab.Mock.BadgeCollection.Add(string linkUrl, string imageUrl) -> NGitLab.Mock.Badge
NGitLab.Mock.BadgeCollection.Add(string name, string linkUrl, string imageUrl) -> NGitLab.Mock.Badge
NGitLab.Mock.BadgeCollection.BadgeCollection(NGitLab.Mock.GitLabObject parent) -> void
NGitLab.Mock.BadgeCollection.GetById(long id) -> NGitLab.Mock.Badge
NGitLab.Mock.Change
Expand Down
4 changes: 4 additions & 0 deletions NGitLab.Tests/GroupBadgeClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,26 @@ public async Task Test_group_badges()
// Create
var badge = groupBadgeClient.Create(new BadgeCreate
{
Name = "CreatedName",
ImageUrl = "http://dummy/image.png",
LinkUrl = "http://dummy/image.html",
});

Assert.That(badge.Kind, Is.EqualTo(BadgeKind.Group));
Assert.That(badge.Name, Is.EqualTo("CreatedName"));
Assert.That(badge.ImageUrl, Is.EqualTo("http://dummy/image.png"));
Assert.That(badge.LinkUrl, Is.EqualTo("http://dummy/image.html"));

// Update
badge = groupBadgeClient.Update(badge.Id, new BadgeUpdate
{
Name = "DummyName",
ImageUrl = "http://dummy/image_edit.png",
LinkUrl = "http://dummy/image_edit.html",
});

Assert.That(badge.Kind, Is.EqualTo(BadgeKind.Group));
Assert.That(badge.Name, Is.EqualTo("DummyName"));
Assert.That(badge.ImageUrl, Is.EqualTo("http://dummy/image_edit.png"));
Assert.That(badge.LinkUrl, Is.EqualTo("http://dummy/image_edit.html"));

Expand Down
4 changes: 4 additions & 0 deletions NGitLab.Tests/ProjectBadgeClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,26 @@ public async Task Test_project_badges()
// Create
var badge = projectBadgeClient.Create(new BadgeCreate
{
Name = "CreatedName",
ImageUrl = "http://dummy/image.png",
LinkUrl = "http://dummy/image.html",
});

Comment thread
jasonwoods-7 marked this conversation as resolved.
Assert.That(badge.Kind, Is.EqualTo(BadgeKind.Project));
Assert.That(badge.Name, Is.EqualTo("CreatedName"));
Assert.That(badge.ImageUrl, Is.EqualTo("http://dummy/image.png"));
Assert.That(badge.LinkUrl, Is.EqualTo("http://dummy/image.html"));

// Update
badge = projectBadgeClient.Update(badge.Id, new BadgeUpdate
{
Name = "DummyName",
ImageUrl = "http://dummy/image_edit.png",
LinkUrl = "http://dummy/image_edit.html",
});

Assert.That(badge.Kind, Is.EqualTo(BadgeKind.Project));
Assert.That(badge.Name, Is.EqualTo("DummyName"));
Assert.That(badge.ImageUrl, Is.EqualTo("http://dummy/image_edit.png"));
Assert.That(badge.LinkUrl, Is.EqualTo("http://dummy/image_edit.html"));

Expand Down
3 changes: 3 additions & 0 deletions NGitLab/Models/Badge.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ public class Badge
[JsonPropertyName("id")]
public long Id { get; set; }

[JsonPropertyName("name")]
public string Name { get; set; }

[JsonPropertyName("link_url")]
public string LinkUrl { get; set; }

Expand Down
3 changes: 3 additions & 0 deletions NGitLab/Models/BadgeCreate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ namespace NGitLab.Models;

public class BadgeCreate
{
[JsonPropertyName("name")]
public string Name { get; set; }

[JsonPropertyName("link_url")]
public string LinkUrl { get; set; }

Expand Down
3 changes: 3 additions & 0 deletions NGitLab/Models/BadgeUpdate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ namespace NGitLab.Models;

public class BadgeUpdate
{
[JsonPropertyName("name")]
public string Name { get; set; }

[JsonPropertyName("link_url")]
public string LinkUrl { get; set; }

Expand Down
6 changes: 6 additions & 0 deletions NGitLab/PublicAPI/net10.0/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1386,6 +1386,8 @@ NGitLab.Models.Badge.Kind.get -> NGitLab.Models.BadgeKind
NGitLab.Models.Badge.Kind.set -> void
NGitLab.Models.Badge.LinkUrl.get -> string
NGitLab.Models.Badge.LinkUrl.set -> void
NGitLab.Models.Badge.Name.get -> string
NGitLab.Models.Badge.Name.set -> void
NGitLab.Models.Badge.RenderedImageUrl.get -> string
NGitLab.Models.Badge.RenderedImageUrl.set -> void
NGitLab.Models.Badge.RenderedLinkUrl.get -> string
Expand All @@ -1396,6 +1398,8 @@ NGitLab.Models.BadgeCreate.ImageUrl.get -> string
NGitLab.Models.BadgeCreate.ImageUrl.set -> void
NGitLab.Models.BadgeCreate.LinkUrl.get -> string
NGitLab.Models.BadgeCreate.LinkUrl.set -> void
NGitLab.Models.BadgeCreate.Name.get -> string
NGitLab.Models.BadgeCreate.Name.set -> void
NGitLab.Models.BadgeKind
NGitLab.Models.BadgeKind.Group = 0 -> NGitLab.Models.BadgeKind
NGitLab.Models.BadgeKind.Project = 1 -> NGitLab.Models.BadgeKind
Expand All @@ -1405,6 +1409,8 @@ NGitLab.Models.BadgeUpdate.ImageUrl.get -> string
NGitLab.Models.BadgeUpdate.ImageUrl.set -> void
NGitLab.Models.BadgeUpdate.LinkUrl.get -> string
NGitLab.Models.BadgeUpdate.LinkUrl.set -> void
NGitLab.Models.BadgeUpdate.Name.get -> string
NGitLab.Models.BadgeUpdate.Name.set -> void
NGitLab.Models.Blame
NGitLab.Models.Blame.Blame() -> void
NGitLab.Models.Blame.Commit.get -> NGitLab.Models.BlameCommit
Expand Down
6 changes: 6 additions & 0 deletions NGitLab/PublicAPI/net472/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1387,6 +1387,8 @@ NGitLab.Models.Badge.Kind.get -> NGitLab.Models.BadgeKind
NGitLab.Models.Badge.Kind.set -> void
NGitLab.Models.Badge.LinkUrl.get -> string
NGitLab.Models.Badge.LinkUrl.set -> void
NGitLab.Models.Badge.Name.get -> string
NGitLab.Models.Badge.Name.set -> void
NGitLab.Models.Badge.RenderedImageUrl.get -> string
NGitLab.Models.Badge.RenderedImageUrl.set -> void
NGitLab.Models.Badge.RenderedLinkUrl.get -> string
Expand All @@ -1397,6 +1399,8 @@ NGitLab.Models.BadgeCreate.ImageUrl.get -> string
NGitLab.Models.BadgeCreate.ImageUrl.set -> void
NGitLab.Models.BadgeCreate.LinkUrl.get -> string
NGitLab.Models.BadgeCreate.LinkUrl.set -> void
NGitLab.Models.BadgeCreate.Name.get -> string
NGitLab.Models.BadgeCreate.Name.set -> void
NGitLab.Models.BadgeKind
NGitLab.Models.BadgeKind.Group = 0 -> NGitLab.Models.BadgeKind
NGitLab.Models.BadgeKind.Project = 1 -> NGitLab.Models.BadgeKind
Expand All @@ -1406,6 +1410,8 @@ NGitLab.Models.BadgeUpdate.ImageUrl.get -> string
NGitLab.Models.BadgeUpdate.ImageUrl.set -> void
NGitLab.Models.BadgeUpdate.LinkUrl.get -> string
NGitLab.Models.BadgeUpdate.LinkUrl.set -> void
NGitLab.Models.BadgeUpdate.Name.get -> string
NGitLab.Models.BadgeUpdate.Name.set -> void
NGitLab.Models.Blame
NGitLab.Models.Blame.Blame() -> void
NGitLab.Models.Blame.Commit.get -> NGitLab.Models.BlameCommit
Expand Down
6 changes: 6 additions & 0 deletions NGitLab/PublicAPI/net8.0/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1386,6 +1386,8 @@ NGitLab.Models.Badge.Kind.get -> NGitLab.Models.BadgeKind
NGitLab.Models.Badge.Kind.set -> void
NGitLab.Models.Badge.LinkUrl.get -> string
NGitLab.Models.Badge.LinkUrl.set -> void
NGitLab.Models.Badge.Name.get -> string
NGitLab.Models.Badge.Name.set -> void
NGitLab.Models.Badge.RenderedImageUrl.get -> string
NGitLab.Models.Badge.RenderedImageUrl.set -> void
NGitLab.Models.Badge.RenderedLinkUrl.get -> string
Expand All @@ -1396,6 +1398,8 @@ NGitLab.Models.BadgeCreate.ImageUrl.get -> string
NGitLab.Models.BadgeCreate.ImageUrl.set -> void
NGitLab.Models.BadgeCreate.LinkUrl.get -> string
NGitLab.Models.BadgeCreate.LinkUrl.set -> void
NGitLab.Models.BadgeCreate.Name.get -> string
NGitLab.Models.BadgeCreate.Name.set -> void
NGitLab.Models.BadgeKind
NGitLab.Models.BadgeKind.Group = 0 -> NGitLab.Models.BadgeKind
NGitLab.Models.BadgeKind.Project = 1 -> NGitLab.Models.BadgeKind
Expand All @@ -1405,6 +1409,8 @@ NGitLab.Models.BadgeUpdate.ImageUrl.get -> string
NGitLab.Models.BadgeUpdate.ImageUrl.set -> void
NGitLab.Models.BadgeUpdate.LinkUrl.get -> string
NGitLab.Models.BadgeUpdate.LinkUrl.set -> void
NGitLab.Models.BadgeUpdate.Name.get -> string
NGitLab.Models.BadgeUpdate.Name.set -> void
NGitLab.Models.Blame
NGitLab.Models.Blame.Blame() -> void
NGitLab.Models.Blame.Commit.get -> NGitLab.Models.BlameCommit
Expand Down
6 changes: 6 additions & 0 deletions NGitLab/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1387,6 +1387,8 @@ NGitLab.Models.Badge.Kind.get -> NGitLab.Models.BadgeKind
NGitLab.Models.Badge.Kind.set -> void
NGitLab.Models.Badge.LinkUrl.get -> string
NGitLab.Models.Badge.LinkUrl.set -> void
NGitLab.Models.Badge.Name.get -> string
NGitLab.Models.Badge.Name.set -> void
NGitLab.Models.Badge.RenderedImageUrl.get -> string
NGitLab.Models.Badge.RenderedImageUrl.set -> void
NGitLab.Models.Badge.RenderedLinkUrl.get -> string
Expand All @@ -1397,6 +1399,8 @@ NGitLab.Models.BadgeCreate.ImageUrl.get -> string
NGitLab.Models.BadgeCreate.ImageUrl.set -> void
NGitLab.Models.BadgeCreate.LinkUrl.get -> string
NGitLab.Models.BadgeCreate.LinkUrl.set -> void
NGitLab.Models.BadgeCreate.Name.get -> string
NGitLab.Models.BadgeCreate.Name.set -> void
NGitLab.Models.BadgeKind
NGitLab.Models.BadgeKind.Group = 0 -> NGitLab.Models.BadgeKind
NGitLab.Models.BadgeKind.Project = 1 -> NGitLab.Models.BadgeKind
Expand All @@ -1406,6 +1410,8 @@ NGitLab.Models.BadgeUpdate.ImageUrl.get -> string
NGitLab.Models.BadgeUpdate.ImageUrl.set -> void
NGitLab.Models.BadgeUpdate.LinkUrl.get -> string
NGitLab.Models.BadgeUpdate.LinkUrl.set -> void
NGitLab.Models.BadgeUpdate.Name.get -> string
NGitLab.Models.BadgeUpdate.Name.set -> void
NGitLab.Models.Blame
NGitLab.Models.Blame.Blame() -> void
NGitLab.Models.Blame.Commit.get -> NGitLab.Models.BlameCommit
Expand Down
Loading