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.
WebCAD/__test__/Layer/layer_db.test.ts

80 lines
2.3 KiB

//#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);
});