Skip to content

Commit

Permalink
Do not throw for returning single record methods in MinecraftJar, ins…
Browse files Browse the repository at this point in the history
…tead return NULL
  • Loading branch information
tekgator committed Jun 7, 2023
1 parent ff1bfa4 commit 7b3521c
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 16 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
## [Unreleased]


## [1.4.6] - 2023-06-07

### Changed
- Do not throw for returning single record methods in MinecraftJar, instead return NULL


## [1.4.5] - 2023-06-04

### Fixed
Expand Down
5 changes: 3 additions & 2 deletions MinecraftJars.Tests/ProjectTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,15 @@ public class ProjectTests
public void GetProviderByProject_Success(string providerName)
{
var provider = MinecraftJar.GetProvider(providerName);
Assert.That(provider, Is.Not.Null);

foreach (var project in provider.Projects)
foreach (var project in provider!.Projects)
{
var providerByProject = MinecraftJar.GetProvider(project);
Assert.That(providerByProject, Is.SameAs(provider));

TestContext.Progress.WriteLine("{0}: Provider for project {1} is {2}",
nameof(GetProviderByProject_Success), providerByProject.Name, project.Name);
nameof(GetProviderByProject_Success), providerByProject!.Name, project.Name);
}
}

Expand Down
2 changes: 1 addition & 1 deletion MinecraftJars.Tests/ProviderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public void GetProviderByName_Success()
[TestCase("InvalidProviderName"), Order(5)]
public void GetProviderByName_InvalidProvider(string name)
{
Assert.Throws<InvalidOperationException>(() => MinecraftJar.GetProvider(name));
Assert.That(MinecraftJar.GetProvider(name), Is.Null);
TestContext.Progress.WriteLine("{0}: Provider name {1} invalid", nameof(GetProviderByName_InvalidProvider), name);
}
}
2 changes: 1 addition & 1 deletion MinecraftJars.Tests/VersionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class VersionTests
[TestCaseSource(nameof(Projects)), Order(1)]
public void GetProjectsByName_Success(string projectName)
{
Assert.DoesNotThrow(() => MinecraftJar.GetProject(projectName));
Assert.That(MinecraftJar.GetProject(projectName), Is.Not.Null);
TestContext.Progress.WriteLine("{0}: Project found by name {1}",
nameof(GetProjectsByName_Success), projectName);
}
Expand Down
12 changes: 6 additions & 6 deletions MinecraftJars/IMinecraftJar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ public interface IMinecraftJar
IEnumerable<IMinecraftProvider> GetProviders(ProjectGroup projectGroup);

/// <summary>
/// Return a specific provider
/// Return a specific provider, null if not found
/// </summary>
IMinecraftProvider GetProvider(string providerName);
IMinecraftProvider? GetProvider(string providerName);

/// <summary>
/// Return the provider for the provided Project
/// Return the provider for the provided Project, null if not found
/// </summary>
IMinecraftProvider GetProvider(IMinecraftProject project);
IMinecraftProvider? GetProvider(IMinecraftProject project);

/// <summary>
/// Return a list of all projects (e.g. Vanilla, Spigot, etc.)
Expand All @@ -36,7 +36,7 @@ public interface IMinecraftJar
IEnumerable<IMinecraftProject> GetProjects(ProjectGroup projectGroup);

/// <summary>
/// Return project by it's name
/// Return project by it's name, null if not found
/// </summary>
IMinecraftProject GetProject(string projectName);
IMinecraftProject? GetProject(string projectName);
}
12 changes: 6 additions & 6 deletions MinecraftJars/MinecraftJar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,18 @@ public IEnumerable<IMinecraftProvider> GetProviders(ProjectGroup projectGroup)
select provider;
}

public IMinecraftProvider GetProvider(string providerName)
public IMinecraftProvider? GetProvider(string providerName)
{
return (from provider in GetProviders()
where provider.Name.Equals(providerName)
select provider).Single();
select provider).SingleOrDefault();
}

public IMinecraftProvider GetProvider(IMinecraftProject project)
public IMinecraftProvider? GetProvider(IMinecraftProject project)
{
return (from provider in GetProviders()
where provider.Projects.Contains(project)
select provider).Single();
select provider).SingleOrDefault();
}

public IEnumerable<IMinecraftProject> GetProjects()
Expand All @@ -71,11 +71,11 @@ public IEnumerable<IMinecraftProject> GetProjects(ProjectGroup projectGroup)
select project;
}

public IMinecraftProject GetProject(string projectName)
public IMinecraftProject? GetProject(string projectName)
{
return (from provider in GetProviders()
from project in provider.Projects
where project.Name.Equals(projectName)
select project).Single();
select project).SingleOrDefault();
}
}

0 comments on commit 7b3521c

Please sign in to comment.