Fixing 500 error when entering a bad itemid when creating an auction
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
using GameAuthApi.Services;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
public class ServiceValidationTests
|
||||
{
|
||||
private static IConfiguration cfg = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(new Dictionary<string,string>
|
||||
{
|
||||
{"MongoDB:ConnectionString","mongodb://localhost"},
|
||||
{"MongoDB:DatabaseName","test"}
|
||||
}).Build();
|
||||
|
||||
[Fact]
|
||||
public async Task ItemService_InvalidId_ReturnsNull()
|
||||
{
|
||||
var svc = new ItemService(cfg);
|
||||
|
||||
var result = await svc.GetByIdAsync("bad");
|
||||
|
||||
Assert.Null(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task AuctionService_InvalidId_ReturnsNull()
|
||||
{
|
||||
var svc = new AuctionService(cfg);
|
||||
|
||||
var result = await svc.GetByIdAsync("bad");
|
||||
|
||||
Assert.Null(result);
|
||||
}
|
||||
}
|
||||
@@ -20,8 +20,13 @@ public class AuctionService
|
||||
public virtual async Task CreateAsync(Auction auction) =>
|
||||
await _auctions.InsertOneAsync(auction);
|
||||
|
||||
public virtual async Task<Auction> GetByIdAsync(string id) =>
|
||||
await _auctions.Find(a => a.Id == id).FirstOrDefaultAsync();
|
||||
public virtual async Task<Auction> GetByIdAsync(string id)
|
||||
{
|
||||
if (!MongoDB.Bson.ObjectId.TryParse(id, out _))
|
||||
return null;
|
||||
|
||||
return await _auctions.Find(a => a.Id == id).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
public virtual async Task UpdateAsync(Auction auction) =>
|
||||
await _auctions.ReplaceOneAsync(a => a.Id == auction.Id, auction);
|
||||
|
||||
@@ -29,6 +29,9 @@ public class ItemService
|
||||
|
||||
public virtual async Task<Item> GetByIdAsync(string id)
|
||||
{
|
||||
if (!MongoDB.Bson.ObjectId.TryParse(id, out _))
|
||||
return null;
|
||||
|
||||
return await _items.Find(i => i.Id == id).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user