Skip to content

Bim4Everyone.RevitFiltration.Tests: Добавлены тесты для корневой части библиотеки по фильтрации - #6

Merged
dosymep merged 6 commits into
mainfrom
vlastroG/tests
Mar 24, 2026
Merged

dosymep merged 6 commits into
mainfrom
vlastroG/tests

Conversation

@vlastroG

Copy link
Copy Markdown
Member

Краткое описание

  • Добавлен набор тестов для основной части библиотеки по фильтрации - Bim4Everyone.RevitFiltration
  • Исправлен LogicalFilterParser.TryParse — теперь перехватывает JsonException (покрывает как некорректный JSON, так и ошибки десериализации)

Тесты

Unit тесты

  • LogicalFilterFactoryTests — фабрика создаёт And/Or фильтры
  • LogicalFilterArgumentValidationTests — проверка null-аргументов в Build()
  • LogicalFilterBuildTests — проверяет корректный подтип ElementFilter для правил (equals, hasvalue, begins with, greater-or-equal и др.)
  • LogicalFilterParserTests — сериализации/десериализации для правил и фильтров

Интеграционные тесты — создают реальные элементы в Revit, билдят ElementFilter, передают в FilteredElementCollector и проверяют точное совпадение количества элементов

  • LogicalFilterBuildArchIntegrationTests: архитектурные элементы (стены и перекрытия) через строковые правила (BeginsWithRule, ContainsRule, EndsWithRule) и числовые правила (CURVE_ELEM_LENGTH, HOST_AREA_COMPUTED)
  • LogicalFilterBuildMepIntegrationTests (8 тестов): элементы ВИС (трубы и воздуховоды) через строковые правила и числовые правила CURVE_ELEM_LENGTH

Document life-cycle сделан через [HookExecutor<RevitThreadExecutor>] в соответствии с документацией из RevitUnit — хуки уровня класса для разделяемых документов, хуки уровня теста для изолированных документов в тестах с созданием элементов

Результат выполнения тестов для 2022 Revit

@vlastroG
vlastroG requested a review from dosymep March 20, 2026 13:17
@vlastroG vlastroG self-assigned this Mar 20, 2026
@dosymep
dosymep merged commit 3fd84d0 into main Mar 24, 2026
1 check passed
@vlastroG
vlastroG deleted the vlastroG/tests branch March 24, 2026 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants