FOSSology  4.7.1
Open Source License Compliance by Open Source Software
MockReuserDatabaseHandler.hpp
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-only
3  Author: Dietmar Helmut Leher <helmut.leher.ext@vaillant-group.com>
4  SPDX-FileCopyrightText: © 2026 Vaillant GmbH
5 */
15 #pragma once
16 
17 #include "ReuserDatabaseHandler.hpp"
18 
19 #include <functional>
20 #include <map>
21 #include <vector>
22 
32 {
33 public:
40  explicit MockReuserDatabaseHandler();
41 
42  // ── Overridable callbacks ─────────────────────────────────────────────────
43 
44  std::function<bool(int, ItemTreeBounds&)>
45  onGetParentItemBounds;
46 
47  std::function<std::vector<ReuseTriple>(int, int)>
48  onGetReusedUploads;
49 
50  std::function<std::map<int, int>(int, int)>
51  onGetClearingDecisionMapByPfile;
52 
53  std::function<std::map<int, std::vector<int>>(int, const std::vector<int>&)>
54  onGetUploadTreePksForPfiles;
55 
56  std::function<bool(int, int, int, int, int)>
57  onProcessUploadReuse;
58 
59  std::function<bool(int, int, int, int, int)>
60  onProcessEnhancedUploadReuse;
61 
62  std::function<bool(int, int, int, int)>
63  onReuseMainLicense;
64 
65  std::function<bool(int, int)>
66  onReuseConfSettings;
67 
68  std::function<bool(int, int, int)>
69  onReuseCopyrights;
70 
71  std::function<bool(int, int, int)>
72  onProcessBulkReuser;
73 
74  std::function<bool(int)>
75  onIsJobQueueRunning;
76 
77  std::function<int(int)>
78  onGetEstimatedTime;
79 
80  // ── ReuserDatabaseHandler overrides ──────────────────────────────────────
81 
82  bool getParentItemBounds(int uploadId, ItemTreeBounds& out) override
83  {
84  if (onGetParentItemBounds) return onGetParentItemBounds(uploadId, out);
85  return false; // no callback set: leave out unmodified, signal "not found"
86  }
87 
88  std::vector<ReuseTriple> getReusedUploads(int uploadId, int groupId) override
89  {
90  if (onGetReusedUploads) return onGetReusedUploads(uploadId, groupId);
91  return {};
92  }
93 
94  std::map<int, int> getClearingDecisionMapByPfile(
95  int uploadId, int groupId) override
96  {
97  if (onGetClearingDecisionMapByPfile)
98  return onGetClearingDecisionMapByPfile(uploadId, groupId);
99  return {};
100  }
101 
102  std::map<int, std::vector<int>> getUploadTreePksForPfiles(
103  int uploadId, const std::vector<int>& pfileIds) override
104  {
105  if (onGetUploadTreePksForPfiles)
106  return onGetUploadTreePksForPfiles(uploadId, pfileIds);
107  return {};
108  }
109 
110  bool processUploadReuse(int uploadId, int reusedUploadId,
111  int groupId, int reusedGroupId, int userId) override
112  {
113  if (onProcessUploadReuse)
114  return onProcessUploadReuse(uploadId, reusedUploadId, groupId,
115  reusedGroupId, userId);
116  return true;
117  }
118 
119  bool processEnhancedUploadReuse(int uploadId, int reusedUploadId,
120  int groupId, int reusedGroupId, int userId) override
121  {
122  if (onProcessEnhancedUploadReuse)
123  return onProcessEnhancedUploadReuse(uploadId, reusedUploadId, groupId,
124  reusedGroupId, userId);
125  return true;
126  }
127 
128  bool reuseMainLicense(int uploadId, int groupId,
129  int reusedUploadId, int reusedGroupId) override
130  {
131  if (onReuseMainLicense)
132  return onReuseMainLicense(uploadId, groupId, reusedUploadId,
133  reusedGroupId);
134  return true;
135  }
136 
137  bool reuseConfSettings(int uploadId, int reusedUploadId) override
138  {
139  if (onReuseConfSettings) return onReuseConfSettings(uploadId, reusedUploadId);
140  return true;
141  }
142 
143  bool reuseCopyrights(int uploadId, int reusedUploadId, int userId) override
144  {
145  if (onReuseCopyrights)
146  return onReuseCopyrights(uploadId, reusedUploadId, userId);
147  return true;
148  }
149 
150  bool processBulkReuser(int uploadId, int groupId, int userId) override
151  {
152  if (onProcessBulkReuser)
153  return onProcessBulkReuser(uploadId, groupId, userId);
154  return true;
155  }
156 
157  bool isJobQueueRunning(int jqPk) override
158  {
159  if (onIsJobQueueRunning) return onIsJobQueueRunning(jqPk);
160  return false;
161  }
162 
163  int getEstimatedTime(int jqPk) override
164  {
165  if (onGetEstimatedTime) return onGetEstimatedTime(jqPk);
166  return 0;
167  }
168 };
Test double for ReuserDatabaseHandler.
bool reuseConfSettings(int uploadId, int reusedUploadId) override
bool getParentItemBounds(int uploadId, ItemTreeBounds &out) override
Fetch the parent item bounds for a given upload.
std::map< int, std::vector< int > > getUploadTreePksForPfiles(int uploadId, const std::vector< int > &pfileIds) override
For a set of pfile ids, return a map pfile_fk to [uploadtree_pk].
bool isJobQueueRunning(int jqPk) override
bool processEnhancedUploadReuse(int uploadId, int reusedUploadId, int groupId, int reusedGroupId, int userId) override
bool processBulkReuser(int uploadId, int groupId, int userId) override
bool processUploadReuse(int uploadId, int reusedUploadId, int groupId, int reusedGroupId, int userId) override
std::vector< ReuseTriple > getReusedUploads(int uploadId, int groupId) override
Return the list of uploads that should be reused for uploadId.
int getEstimatedTime(int jqPk) override
std::map< int, int > getClearingDecisionMapByPfile(int uploadId, int groupId) override
Build a pfile_fk to clearing_decision_pk map for uploadId.
bool reuseCopyrights(int uploadId, int reusedUploadId, int userId) override
bool reuseMainLicense(int uploadId, int groupId, int reusedUploadId, int reusedGroupId) override
Database handler for the reuser agent.
Bounds of an item within an uploadtree table.
Definition: ReuserTypes.hpp:14