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