Skip to content

Commit

Permalink
Add tests for addWorkspaceFromDialog function
Browse files Browse the repository at this point in the history
  • Loading branch information
robertapplin committed Nov 15, 2023
1 parent 67a7c97 commit cbe87b7
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 36 deletions.
35 changes: 1 addition & 34 deletions qt/scientific_interfaces/Indirect/IndirectAddWorkspaceDialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -132,40 +132,7 @@
</customwidget>
</customwidgets>
<resources/>
<connections>
<connection>
<sender>pbAdd</sender>
<signal>clicked()</signal>
<receiver>IndirectAddWorkspaceDialog</receiver>
<slot>addData()</slot>
<hints>
<hint type="sourcelabel">
<x>283</x>
<y>157</y>
</hint>
<hint type="destinationlabel">
<x>248</x>
<y>294</y>
</hint>
</hints>
</connection>
<connection>
<sender>pbClose</sender>
<signal>clicked()</signal>
<receiver>IndirectAddWorkspaceDialog</receiver>
<slot>closeDialog()</slot>
<hints>
<hint type="sourcelabel">
<x>358</x>
<y>160</y>
</hint>
<hint type="destinationlabel">
<x>354</x>
<y>227</y>
</hint>
</hints>
</connection>
</connections>
<connections/>
<slots>
<slot>addData()</slot>
<slot>closeDialog()</slot>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
// SPDX - License - Identifier: GPL - 3.0 +
#pragma once
#include "DllConfig.h"
#include "IAddWorkspaceDialog.h"
#include "ui_ConvFitAddWorkspaceDialog.h"

namespace MantidQt {
namespace CustomInterfaces {
namespace IDA {

class ConvFitAddWorkspaceDialog : public IAddWorkspaceDialog {
class MANTIDQT_INELASTIC_DLL ConvFitAddWorkspaceDialog : public IAddWorkspaceDialog {
Q_OBJECT
public:
explicit ConvFitAddWorkspaceDialog(QWidget *parent);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@
// SPDX - License - Identifier: GPL - 3.0 +
#pragma once

#include "DllConfig.h"
#include "IAddWorkspaceDialog.h"
#include "ui_FqFitAddWorkspaceDialog.h"

namespace MantidQt {
namespace CustomInterfaces {
namespace IDA {

class FqFitAddWorkspaceDialog : public IAddWorkspaceDialog {
class MANTIDQT_INELASTIC_DLL FqFitAddWorkspaceDialog : public IAddWorkspaceDialog {
Q_OBJECT
public:
explicit FqFitAddWorkspaceDialog(QWidget *parent);
Expand Down
12 changes: 12 additions & 0 deletions qt/scientific_interfaces/Inelastic/test/ConvFitDataPresenterTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@
#include <cxxtest/TestSuite.h>
#include <gmock/gmock.h>

#include "Analysis/ConvFitAddWorkspaceDialog.h"
#include "Analysis/ConvFitDataPresenter.h"
#include "Analysis/ConvFitModel.h"
#include "Analysis/IIndirectFitDataView.h"
#include "IndirectAddWorkspaceDialog.h"

#include "MantidAPI/FrameworkManager.h"
#include "MantidFrameworkTestHelpers/IndirectFitDataCreationHelper.h"
Expand Down Expand Up @@ -162,6 +164,16 @@ class ConvFitDataPresenterTest : public CxxTest::TestSuite {
TS_ASSERT_EQUALS(m_dataTable->columnCount(), 6);
}

void test_addWorkspaceFromDialog_returns_false_if_the_dialog_is_not_convfit() {
auto dialog = new IndirectAddWorkspaceDialog(nullptr);
TS_ASSERT(!m_presenter->addWorkspaceFromDialog(dialog));
}

void test_addWorkspaceFromDialog_returns_true_for_a_valid_dialog() {
auto dialog = new ConvFitAddWorkspaceDialog(nullptr);
TS_ASSERT(m_presenter->addWorkspaceFromDialog(dialog));
}

void test_updateTableFromModel_clears_table_and_adds_new_row_for_each_entry() {
EXPECT_CALL(*m_view, clearTable()).Times(Exactly(1));
EXPECT_CALL(*m_model, getNumberOfDomains()).Times(Exactly(4)).WillRepeatedly(Return(3));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@
#include <cxxtest/TestSuite.h>
#include <gmock/gmock.h>

#include "Analysis/FqFitAddWorkspaceDialog.h"
#include "Analysis/FqFitDataPresenter.h"
#include "Analysis/FqFitModel.h"
#include "Analysis/FunctionBrowser/SingleFunctionTemplateBrowser.h"
#include "Analysis/IndirectFitDataView.h"
#include "IndirectAddWorkspaceDialog.h"

#include "MantidAPI/FrameworkManager.h"
#include "MantidFrameworkTestHelpers/IndirectFitDataCreationHelper.h"
Expand Down Expand Up @@ -164,6 +166,11 @@ class FqFitDataPresenterTest : public CxxTest::TestSuite {
TS_ASSERT(m_view);
}

void test_addWorkspaceFromDialog_returns_false_if_the_dialog_is_not_fqfit() {
auto dialog = new IndirectAddWorkspaceDialog(nullptr);
TS_ASSERT(!m_presenter->addWorkspaceFromDialog(dialog));
}

void test_addWorkspace_does_not_throw_with_width() {
EXPECT_CALL(*m_model, addWorkspace("WorkspaceName_HWHM", FunctionModelSpectra("0"))).Times(Exactly(1));
m_presenter->addWorkspace("WorkspaceName", "Width", 0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include "Analysis/IndirectFitDataView.h"
#include "Analysis/IndirectFittingModel.h"
#include "Analysis/ParameterEstimation.h"
#include "IndirectAddWorkspaceDialog.h"

#include "MantidAPI/FrameworkManager.h"
#include "MantidFrameworkTestHelpers/IndirectFitDataCreationHelper.h"
Expand Down Expand Up @@ -50,6 +51,18 @@ struct TableItem {
std::string m_str;
double m_dbl;
};

class FakeDialog : public IAddWorkspaceDialog {

public:
FakeDialog() : IAddWorkspaceDialog(nullptr) {}
virtual std::string workspaceName() const override { return "Name"; }
virtual void setWSSuffices(const QStringList &suffices) override { (void)suffices; }
virtual void setFBSuffices(const QStringList &suffices) override { (void)suffices; }

virtual void updateSelectedSpectra() override {}
};

} // namespace

GNU_DIAG_OFF_SUGGEST_OVERRIDE
Expand Down Expand Up @@ -189,6 +202,16 @@ class IndirectFitDataPresenterTest : public CxxTest::TestSuite {
/// Unit Tests that test the signals, methods and slots of the presenter
///----------------------------------------------------------------------

void test_addWorkspaceFromDialog_returns_false_if_the_dialog_is_not_indirect() {
auto dialog = new FakeDialog();
TS_ASSERT(!m_presenter->addWorkspaceFromDialog(dialog));
}

void test_addWorkspaceFromDialog_returns_true_for_a_valid_dialog() {
auto dialog = new IndirectAddWorkspaceDialog(nullptr);
TS_ASSERT(m_presenter->addWorkspaceFromDialog(dialog));
}

void test_addWorkspace_with_spectra_calls_to_model() {
EXPECT_CALL(*m_model, addWorkspace("WorkspaceName", "0-3")).Times(Exactly(1));
m_presenter->addWorkspace("WorkspaceName", "0-3");
Expand Down

0 comments on commit cbe87b7

Please sign in to comment.