mirror of
https://github.com/OPM/ResInsight.git
synced 2026-08-27 05:37:21 -05:00
#14434 Guard against missing perforation interval in templateUpdated
This commit is contained in:
@@ -549,8 +549,11 @@ void RimWellPathValve::templateUpdated()
|
||||
{
|
||||
applyValveLabelAndIcon();
|
||||
|
||||
auto perforationInterval = firstAncestorOrThisOfType<RimPerforationInterval>();
|
||||
perforationInterval->updateAllReferringTracks();
|
||||
// A valve can also be a stand-alone valve or a tie-in outlet valve, and then has no perforation interval
|
||||
if ( auto perforationInterval = firstAncestorOrThisOfType<RimPerforationInterval>() )
|
||||
{
|
||||
perforationInterval->updateAllReferringTracks();
|
||||
}
|
||||
|
||||
RimProject* proj = RimProject::current();
|
||||
proj->reloadCompletionTypeResultsInAllViews();
|
||||
|
||||
@@ -74,6 +74,7 @@ set(SOURCE_UNITTEST_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/Intersect-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RifPerforationIntervalReader-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimWellPathCompletions-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimWellPathValve-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimDataFilterCollection-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimSummaryCaseCollection-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RifActiveCellsReader-Test.cpp
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2026 Equinor ASA
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "RimValveCollection.h"
|
||||
#include "RimWellPath.h"
|
||||
#include "RimWellPathValve.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// A stand-alone valve has no perforation interval ancestor, and must not crash on template update
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
TEST( RimWellPathValveTest, TemplateUpdatedWithoutPerforationInterval )
|
||||
{
|
||||
RimWellPath wellPath;
|
||||
|
||||
RimValveCollection* valveCollection = wellPath.valveCollection();
|
||||
ASSERT_TRUE( valveCollection != nullptr );
|
||||
|
||||
RimWellPathValve* valve = valveCollection->addIcvValve( 100.0 );
|
||||
ASSERT_TRUE( valve != nullptr );
|
||||
|
||||
valve->templateUpdated();
|
||||
}
|
||||
Reference in New Issue
Block a user