www.mooseframework.org
MooseObjectUnitTest.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "gtest/gtest.h"
13 
14 #include "MooseMesh.h"
15 #include "GeneratedMesh.h"
16 #include "FEProblem.h"
17 #include "AppFactory.h"
18 
69 class MooseObjectUnitTest : public ::testing::Test
70 {
71 public:
75  MooseObjectUnitTest(const std::string & app_name)
76  : _app(AppFactory::createAppShared(app_name, 0, nullptr)), _factory(_app->getFactory())
77  {
78  buildObjects();
79  }
80 
81 protected:
82  void buildObjects()
83  {
84  InputParameters mesh_params = _factory.getValidParams("GeneratedMesh");
85  mesh_params.set<std::string>("_object_name") = "name1";
86  mesh_params.set<std::string>("_type") = "GeneratedMesh";
87  mesh_params.set<MooseEnum>("dim") = "3";
88  _mesh = libmesh_make_unique<GeneratedMesh>(mesh_params);
89  _mesh->setMeshBase(_mesh->buildMeshBaseObject());
90 
91  InputParameters problem_params = _factory.getValidParams("FEProblem");
92  problem_params.set<MooseMesh *>("mesh") = _mesh.get();
93  problem_params.set<std::string>("_object_name") = "name2";
94  _fe_problem = _factory.create<FEProblem>("FEProblem", "problem", problem_params);
95 
96  _fe_problem->createQRules(QGAUSS, FIRST, FIRST, FIRST);
97  }
98 
99  std::unique_ptr<MooseMesh> _mesh;
100  std::shared_ptr<MooseApp> _app;
102  std::shared_ptr<FEProblem> _fe_problem;
103 };
104 
MooseObjectUnitTest::_fe_problem
std::shared_ptr< FEProblem > _fe_problem
Definition: MooseObjectUnitTest.h:102
Factory::create
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, InputParameters &parameters, THREAD_ID tid=0, bool print_deprecated=true)
Build an object (must be registered) - THIS METHOD IS DEPRECATED (Use create<T>())
Definition: Factory.C:93
Factory::getValidParams
InputParameters getValidParams(const std::string &name)
Get valid parameters for the object.
Definition: Factory.C:67
MooseMesh.h
FEProblem.h
FEProblem
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Definition: FEProblem.h:24
MooseObjectUnitTest::_factory
Factory & _factory
Definition: MooseObjectUnitTest.h:101
MooseEnum
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
MooseObjectUnitTest::_mesh
std::unique_ptr< MooseMesh > _mesh
Definition: MooseObjectUnitTest.h:99
AppFactory
Generic AppFactory class for building Application objects.
Definition: AppFactory.h:57
MooseObjectUnitTest
Base class for building basic unit tests for MOOSE objects that can live alone (like user objects,...
Definition: MooseObjectUnitTest.h:69
GeneratedMesh.h
InputParameters
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Definition: InputParameters.h:53
InputParameters::set
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
Definition: InputParameters.h:987
MooseObjectUnitTest::_app
std::shared_ptr< MooseApp > _app
Definition: MooseObjectUnitTest.h:100
AppFactory.h
Factory
Generic factory class for build all sorts of objects.
Definition: Factory.h:153
MooseObjectUnitTest::MooseObjectUnitTest
MooseObjectUnitTest(const std::string &app_name)
Definition: MooseObjectUnitTest.h:75
MooseObjectUnitTest::buildObjects
void buildObjects()
Definition: MooseObjectUnitTest.h:82
MooseMesh
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74