mirror of https://gitee.com/cf-fz/WebCAD.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.3 KiB
80 lines
2.3 KiB
3 months ago
|
|
||
|
//#region 避免无法进入测试 依赖错误导致的测试失败 ref file.test.ts
|
||
|
import { HostApplicationServices } from '../../src/ApplicationServices/HostApplicationServices';
|
||
|
import { DuplicateRecordCloning } from '../../src/Common/Status';
|
||
|
import { AllObjectData } from '../../src/DatabaseServices/AllObjectData';
|
||
|
AllObjectData;
|
||
|
//#endregion
|
||
|
|
||
|
import { Database } from '../../src/DatabaseServices/Database';
|
||
|
import { Entity } from '../../src/DatabaseServices/Entity/Entity';
|
||
|
import { Line } from '../../src/DatabaseServices/Entity/Line';
|
||
|
import { LayerTableRecord } from '../../src/DatabaseServices/LayerTableRecord';
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 1.新绘制的对象必须在当前层上
|
||
|
* 2.能够被序列化
|
||
|
*/
|
||
|
test('绘制的对象默认图层', () =>
|
||
|
{
|
||
|
let db = new Database(true, true, true);
|
||
|
|
||
|
let line = new Line;
|
||
|
|
||
|
db.ModelSpace.Append(line);
|
||
|
|
||
|
expect(line.Layer === db.DefaultLayer.Id).toBeTruthy();//图层等于默认图层
|
||
|
|
||
|
let layer = new LayerTableRecord();
|
||
|
layer.Name = "新图层1";
|
||
|
db.LayerTable.Add(layer);
|
||
|
|
||
|
db.LayerTable.Current = layer.Id;
|
||
|
|
||
|
line = new Line;
|
||
|
db.ModelSpace.Append(line);
|
||
|
expect(line.Layer === layer.Id).toBeTruthy();//图层应该等于当前图层
|
||
|
|
||
|
let id = line.Id.Index;
|
||
|
|
||
|
let db2 = new Database(false, false, true);
|
||
|
db2.FileRead(db.FileWrite());
|
||
|
|
||
|
let idnew = db2.GetObjectId(id);
|
||
|
|
||
|
(idnew.Object as Entity).Layer.Index;//?
|
||
|
|
||
|
expect((idnew.Object as Entity).Layer.Object.Name).toBe(layer.Name);
|
||
|
});
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 1.对于模块内的实体,由于之前没有图层,新绘入后,需要设置到当前图层
|
||
|
*/
|
||
|
test('模版文件的图层', () =>
|
||
|
{
|
||
|
let db1 = new Database(true, true, true);
|
||
|
HostApplicationServices.Database = db1;
|
||
|
|
||
|
let db2 = new Database(false, false, true);
|
||
|
|
||
|
let line = new Line;
|
||
|
db2.ModelSpace.Append(line);
|
||
|
line.Layer;
|
||
|
line.HasLayer;//?
|
||
|
|
||
|
db1.WblockCloneObejcts([line], db1.ModelSpace, new Map, DuplicateRecordCloning.Ignore);
|
||
|
|
||
|
db1.ModelSpace.Entitys[0].Layer.Object.Name;//?
|
||
|
|
||
|
let layer = new LayerTableRecord();
|
||
|
layer.Name = "新图层1";
|
||
|
db1.LayerTable.Add(layer);
|
||
|
db1.LayerTable.Current = layer.Id;
|
||
|
|
||
|
db1.WblockCloneObejcts([line], db1.ModelSpace, new Map, DuplicateRecordCloning.Ignore);
|
||
|
|
||
|
expect(db1.ModelSpace.Entitys[1].Layer.Object.Name).toBe(layer.Name);
|
||
|
});
|