You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
haoliang-net/tests/CncService.Tests/CollectDataServiceTests.cs

102 lines
3.5 KiB
C#

using System;
using CncModels.Constants;
using CncService;
using CncService.Impl;
using Xunit;
namespace CncService.Tests
{
/// <summary>
/// CollectDataService 采集数据查询测试
/// 测试场景:分页查询原始记录、获取最新记录、参数校验
/// </summary>
[Collection("Database")]
public class CollectDataServiceTests : IDisposable
{
private readonly CollectDataService _service;
public CollectDataServiceTests()
{
TestDb.TruncateAll();
_service = ServiceFactory.CreateCollectDataService();
}
public void Dispose()
{
TestDb.TruncateAll();
}
// ======== GetRawByAddress ========
[Fact]
public void GetRawByAddress_ID_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.GetRawByAddress(0, 1, 20));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetRawByAddress_ID_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.GetRawByAddress(-1, 1, 20));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetRawByAddress__BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.GetRawByAddress(1, 0, 20));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetRawByAddress__BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.GetRawByAddress(1, 1, 0));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetRawByAddress__()
{
// 先插入一个采集地址
TestDb.Execute(@"INSERT INTO cnc_collect_address (name, url, brand_id, collect_interval, is_enabled, created_at, updated_at)
VALUES ('测试地址', 'http://test', 1, 30, 1, NOW(), NOW())");
var result = _service.GetRawByAddress(1, 1, 20);
Assert.NotNull(result);
Assert.Equal(0, result.Total);
}
// ======== GetLatestRaw ========
[Fact]
public void GetLatestRaw_ID_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.GetLatestRaw(0));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetLatestRaw__null()
{
TestDb.Execute(@"INSERT INTO cnc_collect_address (name, url, brand_id, collect_interval, is_enabled, created_at, updated_at)
VALUES ('测试地址', 'http://test', 1, 30, 1, NOW(), NOW())");
var result = _service.GetLatestRaw(1);
Assert.Null(result);
}
[Fact]
public void GetLatestRaw__()
{
TestDb.Execute(@"INSERT INTO cnc_collect_address (name, url, brand_id, collect_interval, is_enabled, created_at, updated_at)
VALUES ('测试地址', 'http://test', 1, 30, 1, NOW(), NOW())");
TestDb.Execute("INSERT INTO log_collect_raw (collect_address_id, request_time, response_time, is_success, raw_json, created_at) VALUES (1, NOW(), NOW(), 1, '{\"\"test\"\":1}', NOW())");
var result = _service.GetLatestRaw(1);
Assert.NotNull(result);
}
}
}