Skip to content

Commit 6431666

Browse files
authored
Merge pull request DomCR#680 from DomCR/issue-679_BlockRecord-Layout-clone
Issue 679 block record layout clone
2 parents 32bc821 + d6f04dd commit 6431666

File tree

4 files changed

+166
-149
lines changed

4 files changed

+166
-149
lines changed
Lines changed: 65 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using ACadSharp.Entities;
2+
using ACadSharp.Extensions;
3+
using ACadSharp.Objects;
24
using ACadSharp.Tables;
35
using ACadSharp.Tests.Common;
46
using System;
@@ -8,20 +10,6 @@ namespace ACadSharp.Tests.Tables
810
{
911
public class BlockRecordTests
1012
{
11-
[Fact()]
12-
public void BlockRecordTest()
13-
{
14-
string name = "my_block";
15-
BlockRecord record = new BlockRecord(name);
16-
17-
Assert.Equal(name, record.Name);
18-
19-
Assert.NotNull(record.BlockEntity);
20-
Assert.Equal(record.Name, record.BlockEntity.Name);
21-
22-
Assert.NotNull(record.BlockEnd);
23-
}
24-
2513
[Fact()]
2614
public void AddEntityTest()
2715
{
@@ -45,33 +33,69 @@ public void AddEntityTest()
4533
}
4634

4735
[Fact()]
48-
public void NotAllowDuplicatesTest()
36+
public void BlockRecordTest()
4937
{
5038
string name = "my_block";
5139
BlockRecord record = new BlockRecord(name);
5240

53-
Line l1 = new Line();
41+
Assert.Equal(name, record.Name);
5442

55-
record.Entities.Add(l1);
56-
Assert.Throws<ArgumentException>(() => record.Entities.Add(l1));
43+
Assert.NotNull(record.BlockEntity);
44+
Assert.Equal(record.Name, record.BlockEntity.Name);
45+
46+
Assert.NotNull(record.BlockEnd);
5747
}
5848

5949
[Fact()]
60-
public void CreateSortensTableTest()
50+
public void CloneDetachDocumentTest()
6151
{
6252
string name = "my_block";
6353
BlockRecord record = new BlockRecord(name);
54+
CadDocument doc = new CadDocument();
6455

65-
record.Entities.Add(new Line());
66-
record.Entities.Add(new Line());
67-
record.Entities.Add(new Line());
68-
record.Entities.Add(new Line());
56+
doc.BlockRecords.Add(record);
6957

70-
record.CreateSortEntitiesTable();
58+
BlockRecord clone = (BlockRecord)record.Clone();
7159

72-
Assert.NotNull(record.SortEntitiesTable);
73-
Assert.NotNull(record.SortEntitiesTable.Sorters);
74-
Assert.Empty(record.SortEntitiesTable.Sorters);
60+
Assert.Null(clone.Document);
61+
Assert.Null(clone.BlockEntity.Document);
62+
Assert.Null(clone.BlockEnd.Document);
63+
64+
Assert.NotNull(record.Document);
65+
Assert.NotNull(record.BlockEntity.Document);
66+
Assert.NotNull(record.BlockEnd.Document);
67+
}
68+
69+
[Fact()]
70+
public void CloneInDocumentTest()
71+
{
72+
string name = "my_block";
73+
BlockRecord record = new BlockRecord(name);
74+
CadDocument doc = new CadDocument();
75+
76+
doc.BlockRecords.Add(record);
77+
78+
Assert.NotNull(record.Document);
79+
Assert.NotNull(record.BlockEntity.Document);
80+
Assert.NotNull(record.BlockEnd.Document);
81+
}
82+
83+
[Fact()]
84+
public void ClonePaperSpaceTest()
85+
{
86+
CadDocument doc = new CadDocument();
87+
88+
BlockRecord record = doc.PaperSpace.CloneTyped();
89+
90+
Assert.NotNull(record);
91+
Assert.Null(record.Layout);
92+
93+
//Test the layout keeps the block
94+
Layout paper = doc.Layouts["Layout1"];
95+
Layout layout = paper.CloneTyped();
96+
97+
Assert.NotNull(layout);
98+
Assert.NotNull(layout.AssociatedBlock);
7599
}
76100

77101
[Fact()]
@@ -100,37 +124,33 @@ public void CloneTest()
100124
}
101125

102126
[Fact()]
103-
public void CloneInDocumentTest()
127+
public void CreateSortensTableTest()
104128
{
105129
string name = "my_block";
106130
BlockRecord record = new BlockRecord(name);
107-
CadDocument doc = new CadDocument();
108131

109-
doc.BlockRecords.Add(record);
132+
record.Entities.Add(new Line());
133+
record.Entities.Add(new Line());
134+
record.Entities.Add(new Line());
135+
record.Entities.Add(new Line());
110136

111-
Assert.NotNull(record.Document);
112-
Assert.NotNull(record.BlockEntity.Document);
113-
Assert.NotNull(record.BlockEnd.Document);
137+
record.CreateSortEntitiesTable();
138+
139+
Assert.NotNull(record.SortEntitiesTable);
140+
Assert.NotNull(record.SortEntitiesTable.Sorters);
141+
Assert.Empty(record.SortEntitiesTable.Sorters);
114142
}
115143

116144
[Fact()]
117-
public void CloneDetachDocumentTest()
145+
public void NotAllowDuplicatesTest()
118146
{
119147
string name = "my_block";
120148
BlockRecord record = new BlockRecord(name);
121-
CadDocument doc = new CadDocument();
122-
123-
doc.BlockRecords.Add(record);
124-
125-
BlockRecord clone = (BlockRecord)record.Clone();
126149

127-
Assert.Null(clone.Document);
128-
Assert.Null(clone.BlockEntity.Document);
129-
Assert.Null(clone.BlockEnd.Document);
150+
Line l1 = new Line();
130151

131-
Assert.NotNull(record.Document);
132-
Assert.NotNull(record.BlockEntity.Document);
133-
Assert.NotNull(record.BlockEnd.Document);
152+
record.Entities.Add(l1);
153+
Assert.Throws<ArgumentException>(() => record.Entities.Add(l1));
134154
}
135155
}
136156
}

src/ACadSharp/ACadSharp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<PropertyGroup>
1818
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1919
<PackageReadmeFile>README.md</PackageReadmeFile>
20-
<Version>3.0.0</Version>
20+
<Version>3.0.1</Version>
2121
<PackageOutputPath>../nupkg</PackageOutputPath>
2222
</PropertyGroup>
2323

0 commit comments

Comments
 (0)