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  // ── ReuserDatabaseHandler overrides ──────────────────────────────────────
72 
73  bool getParentItemBounds(int uploadId, ItemTreeBounds& out) override
74  {
75  if (onGetParentItemBounds) return onGetParentItemBounds(uploadId, out);
76  return false; // no callback set: leave out unmodified, signal "not found"
77  }
78 
79  std::vector<ReuseTriple> getReusedUploads(int uploadId, int groupId) override
80  {
81  if (onGetReusedUploads) return onGetReusedUploads(uploadId, groupId);
82  return {};
83  }
84 
85  std::map<int, int> getClearingDecisionMapByPfile(
86  int uploadId, int groupId) override
87  {
88  if (onGetClearingDecisionMapByPfile)
89  return onGetClearingDecisionMapByPfile(uploadId, groupId);
90  return {};
91  }
92 
93  std::map<int, std::vector<int>> getUploadTreePksForPfiles(
94  int uploadId, const std::vector<int>& pfileIds) override
95  {
96  if (onGetUploadTreePksForPfiles)
97  return onGetUploadTreePksForPfiles(uploadId, pfileIds);
98  return {};
99  }
100 
101  bool processUploadReuse(int uploadId, int reusedUploadId,
102  int groupId, int reusedGroupId, int userId) override
103  {
104  if (onProcessUploadReuse)
105  return onProcessUploadReuse(uploadId, reusedUploadId, groupId,
106  reusedGroupId, userId);
107  return true;
108  }
109 
110  bool processEnhancedUploadReuse(int uploadId, int reusedUploadId,
111  int groupId, int reusedGroupId, int userId) override
112  {
113  if (onProcessEnhancedUploadReuse)
114  return onProcessEnhancedUploadReuse(uploadId, reusedUploadId, groupId,
115  reusedGroupId, userId);
116  return true;
117  }
118 
119  bool reuseMainLicense(int uploadId, int groupId,
120  int reusedUploadId, int reusedGroupId) override
121  {
122  if (onReuseMainLicense)
123  return onReuseMainLicense(uploadId, groupId, reusedUploadId,
124  reusedGroupId);
125  return true;
126  }
127 
128  bool reuseConfSettings(int uploadId, int reusedUploadId) override
129  {
130  if (onReuseConfSettings) return onReuseConfSettings(uploadId, reusedUploadId);
131  return true;
132  }
133 
134  bool reuseCopyrights(int uploadId, int reusedUploadId, int userId) override
135  {
136  if (onReuseCopyrights)
137  return onReuseCopyrights(uploadId, reusedUploadId, userId);
138  return true;
139  }
140 };
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 processEnhancedUploadReuse(int uploadId, int reusedUploadId, int groupId, int reusedGroupId, 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.
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