< Summary

Class:MUNity.Database.FluentAPI.OrganizationOptionsBuilder
Assembly:MUNity.Database
File(s):C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNityDatabase\FluentAPI\Organization\OrganizationOptionsBuilder.cs
Covered lines:41
Uncovered lines:0
Coverable lines:41
Total lines:64
Line coverage:100% (41 of 41)
Covered branches:0
Total branches:0
Covered methods:7
Total methods:7
Method coverage:100% (7 of 7)

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
get_Organization()100%1100%
WithName(...)100%1100%
WithShort(...)100%1100%
WithAdminRole()100%1100%
WithMemberRole(...)100%1100%
.ctor(...)100%1100%
WithProject(...)100%1100%

File(s)

C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNityDatabase\FluentAPI\Organization\OrganizationOptionsBuilder.cs

#LineLine coverage
 1using System;
 2using MUNity.Database.Context;
 3using MUNity.Database.Models.Organization;
 4
 5namespace MUNity.Database.FluentAPI;
 6
 7public class OrganizationOptionsBuilder
 8{
 9    private MunityContext _context;
 10
 2511    public Organization Organization { get; }
 12
 13    public OrganizationOptionsBuilder WithName(string name)
 514    {
 515        Organization.OrganizationName = name;
 516        return this;
 517    }
 18
 19    public OrganizationOptionsBuilder WithShort(string shortName)
 520    {
 521        Organization.OrganizationShort = shortName;
 522        return this;
 523    }
 24
 25    public OrganizationOptionsBuilder WithAdminRole()
 126    {
 127        var adminRole = new OrganizationRole();
 128        adminRole.Organization = this.Organization;
 129        this.Organization.Roles.Add(adminRole);
 130        adminRole.RoleName = "Admin";
 131        adminRole.CanCreateProject = true;
 132        adminRole.CanManageMembers = true;
 133        return this;
 134    }
 35
 36    public OrganizationOptionsBuilder WithMemberRole(string roleName = "Member")
 137    {
 138        var memberRole = new OrganizationRole()
 139        {
 140            CanCreateProject = false,
 141            CanCreateRoles = false,
 142            CanManageMembers = false,
 143            Organization = this.Organization,
 144            RoleName = roleName
 145        };
 146        this.Organization.Roles.Add(memberRole);
 147        return this;
 148    }
 49
 550    public OrganizationOptionsBuilder(MunityContext context)
 551    {
 552        this._context = context;
 553        this.Organization = new Organization();
 554    }
 55
 56    public OrganizationOptionsBuilder WithProject(Action<ProjectOptionsBuilder> options)
 357    {
 358        var builder = new ProjectOptionsBuilder(this._context, this.Organization);
 359        options(builder);
 360        this.Organization.Projects.Add(builder.Project);
 361        return this;
 362    }
 63
 64}