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/ScreenServiceTests.cs

161 lines
4.8 KiB
C#

using System;
using CncModels.Constants;
using CncModels.Entity;
using CncService;
using CncService.Impl;
using Xunit;
namespace CncService.Tests
{
/// <summary>
/// ScreenService 大屏配置测试
/// 测试场景:获取/更新配置、筛选CRUD、汇总数据、参数校验
/// </summary>
[Collection("Database")]
public class ScreenServiceTests : IDisposable
{
private readonly ScreenService _service;
public ScreenServiceTests()
{
TestDb.TruncateAll();
_service = ServiceFactory.CreateScreenService();
}
public void Dispose()
{
TestDb.TruncateAll();
}
// ======== GetSummary ========
[Fact]
public void GetSummary_()
{
var summary = _service.GetSummary();
Assert.NotNull(summary);
Assert.Equal(0, summary.MachineCount);
Assert.Equal(0, summary.ProductionToday);
Assert.Equal(0, summary.AlertCount);
Assert.Equal(0, summary.OnlineCount);
}
// ======== GetConfigs ========
[Fact]
public void GetConfigs__()
{
var configs = _service.GetConfigs();
Assert.NotNull(configs);
}
// ======== UpdateConfig ========
[Fact]
public void UpdateConfig_null_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.UpdateConfig(null));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
// ======== GetFilters ========
[Fact]
public void GetFilters_screenKey_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.GetFilters(""));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetFilters_screenKeynull_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.GetFilters(null));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetFilters_screenKey_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.GetFilters(" "));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetFilters_screenKey_()
{
// 先插入筛选数据
TestDb.Execute(@"INSERT INTO cnc_screen_filter (screen_key, filter_type, filter_value, is_default, sort_order)
VALUES ('dashboard', 'workshop', '1', 1, 1)");
var filters = _service.GetFilters("dashboard");
Assert.NotNull(filters);
Assert.True(filters.Count >= 1);
}
// ======== CreateFilter ========
[Fact]
public void CreateFilter__ID()
{
var id = _service.CreateFilter(new ScreenFilter
{
ScreenKey = "dashboard",
FilterType = "workshop",
FilterValue = "1",
IsDefault = 1,
SortOrder = 1
});
Assert.True(id > 0);
}
[Fact]
public void CreateFilter_null_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.CreateFilter(null));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
// ======== UpdateFilter ========
[Fact]
public void UpdateFilter_null_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.UpdateFilter(null));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
// ======== DeleteFilter ========
[Fact]
public void DeleteFilter_ID_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.DeleteFilter(0));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void DeleteFilter_ID_BadRequest()
{
var ex = Assert.Throws<BusinessException>(() => _service.DeleteFilter(-1));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void DeleteFilter_ID_true()
{
var id = _service.CreateFilter(new ScreenFilter
{
ScreenKey = "dashboard",
FilterType = "workshop",
FilterValue = "1",
IsDefault = 1,
SortOrder = 1
});
var result = _service.DeleteFilter(id);
Assert.True(result);
}
}
}