Repository: kubernetes-sigs/kueue

Issue:
Reduce Verbosity of Scheduler Unit Tests
**What would you like to be cleaned**:
Test definition of https://github.com/kubernetes-sigs/kueue/blob/main/pkg/scheduler/scheduler_test.go is super verbose. Refactor/cleanup to make these more expressive with less code. At the very least, we should get rid of having to define LocalQueues, but I imagine that there are other low-hanging fruit.

See https://github.com/kubernetes-sigs/kueue/pull/4695 for inspiration. Additionally, use judgement to see if there are other ways to improve.

**Why is this needed**:
New tests are hard to write, and existing tests are painful to read

Discussion:
@IrvingMg: /assign@k8s-triage-robot: The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity, `lifecycle/stale` is applied
- After 30d of inactivity since `lifecycle/stale` was applied, `lifecycle/rotten` is applied
- After 30d of inactivity since `lifecycle/rotten` was applied, the issue is closed

You can:
- Mark this issue as fresh with `/remove-lifecycle stale`
- Close this issue with `/close`
- Offer to help out with [Issue Triage][1]

Please send feedback to sig-contributor-experience at [kubernetes/community](https://github.com/kubernetes/community).

/lifecycle stale

[1]: https://www.kubernetes.dev/docs/guide/issue-triage/@mimowo: /remove-lifecycle stale
What is the status @IrvingMg ?@IrvingMg: > What is the status [@IrvingMg](https://github.com/IrvingMg) ?

I haven't had the capacity to work on this yet, but I can take it on now.

Solution patch:
diff --git a/.github/workflows/krew-release.yml b/.github/workflows/krew-release.yml
index 8bd0f8c2c..7eba0308d 100644
--- a/.github/workflows/krew-release.yml
+++ b/.github/workflows/krew-release.yml
@@ -7,6 +7,6 @@ jobs:
     runs-on: ubuntu-24.04
     steps:
       - name: Checkout
-        uses: actions/checkout@v4
+        uses: actions/checkout@v5
       - name: Update new version in krew-index
         uses: rajatjindal/krew-release-bot@v0.0.47
\ No newline at end of file
diff --git a/.github/workflows/openvex.yaml b/.github/workflows/openvex.yaml
index 6d3641966..9dab48d61 100644
--- a/.github/workflows/openvex.yaml
+++ b/.github/workflows/openvex.yaml
@@ -19,7 +19,7 @@ jobs:
           TAG=${{ github.event.inputs.tag }}
           echo "TAG=$TAG" >> "$GITHUB_ENV"
       - name: Checkout code
-        uses: actions/checkout@v4
+        uses: actions/checkout@v5
       - uses: openvex/generate-vex@c59881b41451d7ccba5c3b74cd195382b8971fcd
         name: Run vexctl
         with:
diff --git a/.github/workflows/sbom.yaml b/.github/workflows/sbom.yaml
index 4ffd12992..2d96b7641 100644
--- a/.github/workflows/sbom.yaml
+++ b/.github/workflows/sbom.yaml
@@ -15,7 +15,7 @@ jobs:
     name: Install bom and generate SBOM
     steps:
       - name: Checkout repository
-        uses: actions/checkout@v4
+        uses: actions/checkout@v5
       - name: Set tag name
         shell: bash
         run: |
diff --git a/.github/workflows/sync-dependabot.yaml b/.github/workflows/sync-dependabot.yaml
index 5969d11e7..151c24533 100644
--- a/.github/workflows/sync-dependabot.yaml
+++ b/.github/workflows/sync-dependabot.yaml
@@ -15,7 +15,7 @@ jobs:
           contents: write
 
         steps:
-            - uses: actions/checkout@v4
+            - uses: actions/checkout@v5
               with: 
                 ref: ${{github.head_ref}}
             - name: Set git user from last commit
diff --git a/OWNERS b/OWNERS
index d364227e9..302f65827 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,6 +1,7 @@
 # See the OWNERS docs at https://go.k8s.io/owners
 
 approvers:
+- gabesaba
 - mimowo
 - tenzen-y
 
diff --git a/hack/releasing/sync-notes.sh b/hack/releasing/sync-notes.sh
index 9a1ccb9ae..71bd74f74 100755
--- a/hack/releasing/sync-notes.sh
+++ b/hack/releasing/sync-notes.sh
@@ -75,7 +75,7 @@ function find_head_branch() {
 
   # Get the latest release version tag (sorted semver)
   latest_release_version=$(git tag -l | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -n 1)
-  IFS='.' read -r latest_major latest_minor <<< "${latest_release_version#v}"
+  IFS='.' read -r latest_major latest_minor _ <<< "${latest_release_version#v}"
 
   # Check if current major.minor is less than latest
   if [[ "$major" -lt "$latest_major" ]] || { [[ "$major" -eq "$latest_major" ]] && [[ "$minor" -lt "$latest_minor" ]]; }; then
diff --git a/keps/77-dynamically-sized-jobs/README.md b/keps/77-dynamically-sized-jobs/README.md
index 760ccde8d..592dc5992 100644
--- a/keps/77-dynamically-sized-jobs/README.md
+++ b/keps/77-dynamically-sized-jobs/README.md
@@ -461,6 +461,7 @@ Here’s a structured and detailed **Graduation Criteria** section for KEP-77: *
 * [x] Integration tests cover basic scale-up, scale-down, and resource flavor constraints.
 * [x] Feature opt-in is supported via workload annotation (`kueue.x-k8s.io/elastic-job: "true"`).
 * [x] Documented enablement steps, slice behavior, and known limitations.
+* [x] Kueue-native Deployment support leveraging WorkloadSlices.
 
 #### Beta
 
@@ -481,6 +482,7 @@ Here’s a structured and detailed **Graduation Criteria** section for KEP-77: *
 * [ ] Re-evaluate the WorkloadSlice implementation to ensure compatibility with elastic workloads, considering all current and emerging alternatives within Kueue.
 * [ ] Re-evaluate currently disallowed per-job-instance combination of enabled PartialAdmission and ElasticJobs.
 * [ ] Re-evaluate the approach for removing PodSchedulingReadiness gate for admitted workload slices to use a dedicated controller rather than calling from Job reconciler (see 3. in [comment](https://github.com/kubernetes-sigs/kueue/pull/5510#issuecomment-3060737465)).
+* [ ] Re-evaluate integration frameworks leveraging `ElasticJobsViaWorkloadSlices`.
 
 #### GA (Stable)
 
diff --git a/pkg/cache/OWNERS b/pkg/cache/OWNERS
deleted file mode 100644
index 24180e8b6..000000000
--- a/pkg/cache/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-# See the OWNERS docs at https://go.k8s.io/owners
-
-approvers:
-- gabesaba
diff --git a/pkg/controller/admissionchecks/provisioning/constants.go b/pkg/controller/admissionchecks/provisioning/constants.go
index e6eda511b..2c4f5d73b 100644
--- a/pkg/controller/admissionchecks/provisioning/constants.go
+++ b/pkg/controller/admissionchecks/provisioning/constants.go
@@ -17,11 +17,7 @@ limitations under the License.
 package provisioning
 
 const (
-	ConfigKind             = "ProvisioningRequestConfig"
-	ControllerName         = "kueue.x-k8s.io/provisioning-request"
-	ConsumesAnnotationKey  = "autoscaling.x-k8s.io/consume-provisioning-request"
-	ClassNameAnnotationKey = "autoscaling.x-k8s.io/provisioning-class-name"
-
+	ConfigKind           = "ProvisioningRequestConfig"
 	CheckInactiveMessage = "the check is not active"
 	NoRequestNeeded      = "the provisioning request is not needed"
 )
diff --git a/pkg/controller/admissionchecks/provisioning/controller.go b/pkg/controller/admissionchecks/provisioning/controller.go
index 86f2522dd..4555477c6 100644
--- a/pkg/controller/admissionchecks/provisioning/controller.go
+++ b/pkg/controller/admissionchecks/provisioning/controller.go
@@ -624,8 +624,9 @@ func podSetUpdates(log logr.Logger, wl *kueue.Workload, pr *autoscaling.Provisio
 		podSetUpdate := kueue.PodSetUpdate{
 			Name: refMap[ps.PodTemplateRef.Name],
 			Annotations: map[string]string{
-				ConsumesAnnotationKey:  pr.Name,
-				ClassNameAnnotationKey: pr.Spec.ProvisioningClassName},
+				autoscaling.ProvisioningRequestPodAnnotationKey: pr.Name,
+				autoscaling.ProvisioningClassPodAnnotationKey:   pr.Spec.ProvisioningClassName,
+			},
 		}
 		if psUpdate := prc.Spec.PodSetUpdates; psUpdate != nil {
 			podSetUpdate.NodeSelector = make(map[string]string, len(psUpdate.NodeSelector))
diff --git a/pkg/hierarchy/OWNERS b/pkg/hierarchy/OWNERS
deleted file mode 100644
index 24180e8b6..000000000
--- a/pkg/hierarchy/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-# See the OWNERS docs at https://go.k8s.io/owners
-
-approvers:
-- gabesaba
diff --git a/pkg/resources/OWNERS b/pkg/resources/OWNERS
deleted file mode 100644
index 24180e8b6..000000000
--- a/pkg/resources/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-# See the OWNERS docs at https://go.k8s.io/owners
-
-approvers:
-- gabesaba
diff --git a/pkg/scheduler/OWNERS b/pkg/scheduler/OWNERS
deleted file mode 100644
index 24180e8b6..000000000
--- a/pkg/scheduler/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-# See the OWNERS docs at https://go.k8s.io/owners
-
-approvers:
-- gabesaba
diff --git a/pkg/util/OWNERS b/pkg/util/OWNERS
deleted file mode 100644
index 24180e8b6..000000000
--- a/pkg/util/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-# See the OWNERS docs at https://go.k8s.io/owners
-
-approvers:
-- gabesaba
diff --git a/site/content/zh-CN/docs/reference/kubectl-kueue/commands/kueuectl_list/kueuectl_list_workload.md b/site/content/zh-CN/docs/reference/kubectl-kueue/commands/kueuectl_list/kueuectl_list_workload.md
index 62ede5b8b..d57e4bd2a 100644
--- a/site/content/zh-CN/docs/reference/kubectl-kueue/commands/kueuectl_list/kueuectl_list_workload.md
+++ b/site/content/zh-CN/docs/reference/kubectl-kueue/commands/kueuectl_list/kueuectl_list_workload.md
@@ -5,26 +5,19 @@ auto_generated: true
 no_list: false
 ---
 
-<!--
-The file is auto-generated from the Go source code of the component using the
-[generator](https://github.com/kubernetes-sigs/kueue/tree/main/cmd/kueuectl-docs).
--->
+## 概要 {#synopsis}
 
-## Synopsis
+列出符合条件的工作负载。
 
-
-Lists Workloads that match the provided criteria.
-
-```
+```s hell
 kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_QUEUE_NAME] [--status STATUS] [--selector key1=value1] [--field-selector key1=value1] [--all-namespaces] [--for TYPE[.API-GROUP]/NAME]
 ```
 
+## 示例
 
-## Examples
-
-```
-  # List Workload
-  kueuectl list workload
+```shell
+# 列出工作负载
+kueuectl list workload
 ```
 
 
@@ -43,16 +36,16 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>If present, list the requested object(s) across all namespaces. Namespace in current context is ignored even if specified with --namespace.</p>
+            <p>如果存在，跨所有命名空间列出请求的对象。即使使用 --namespace 指定了当前上下文中的命名空间，也会被忽略。</p>
         </td>
     </tr>
     <tr>
-        <td colspan="2">--allow-missing-template-keys&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: true</td>
+        <td colspan="2">--allow-missing-template-keys&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;默认值：true</td>
     </tr>
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.</p>
+            <p>如果为 true，则在模板中缺少字段或映射键时忽略任何错误。仅适用于 golang 和 jsonpath 输出格式。</p>
         </td>
     </tr>
     <tr>
@@ -61,7 +54,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Filter by cluster queue name which is associated with the resource.</p>
+            <p>按与资源关联的 clusterqueue 名称进行过滤</p>
         </td>
     </tr>
     <tr>
@@ -70,7 +63,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Selector (field query) to filter on, supports &#39;=&#39;, &#39;==&#39;, and &#39;!=&#39;.(e.g. --field-selector key1=value1,key2=value2). The server only supports a limited number of field queries per type.</p>
+            <p>选择器（字段查询）用于过滤，支持 '='、'==' 和 '!='。（例如：--field-selector key1=value1,key2=value2)。服务器仅支持每种类型有限数量的字段查询。</p>
         </td>
     </tr>
     <tr>
@@ -79,7 +72,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Filter only those pertaining to the specified resource.</p>
+            <p>仅过滤与指定资源相关的内容。</p>
         </td>
     </tr>
     <tr>
@@ -88,7 +81,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>help for workload</p>
+            <p>workload 命令的帮助信息</p>
         </td>
     </tr>
     <tr>
@@ -97,7 +90,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Filter by local queue name which is associated with the resource.</p>
+            <p>按与资源关联的 localqueue 名称进行过滤.</p>
         </td>
     </tr>
     <tr>
@@ -106,7 +99,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Output format. One of: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file).</p>
+            <p>输出格式。可选值为：(json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file)。</p>
         </td>
     </tr>
     <tr>
@@ -115,7 +108,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Selector (label query) to filter on, supports &#39;=&#39;, &#39;==&#39;, and &#39;!=&#39;.(e.g. -l key1=value1,key2=value2). Matching objects must satisfy all of the specified label constraints.</p>
+            <p>选择器（标签查询）用于过滤，支持 '='、'==' 和 '!='。（例如：-l key1=value1,key2=value2）。匹配的对象必须满足所有指定的标签约束。</p>
         </td>
     </tr>
     <tr>
@@ -124,7 +117,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>If true, keep the managedFields when printing objects in JSON or YAML format.</p>
+            <p>如果为 true，在以 JSON 或 YAML 格式打印对象时保留 managedField。</p>
         </td>
     </tr>
     <tr>
@@ -133,7 +126,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Filter workloads by status. Must be &#34;all&#34;, &#34;pending&#34;, &#34;admitted&#34; or &#34;finished&#34;</p>
+            <p>根据状态过滤工作负载。可选值为："all"、"pending"、"admitted" 或 "finished"</p>
         </td>
     </tr>
     <tr>
@@ -142,15 +135,14 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview].</p>
+            <p>当使用 `-o=go-template`，`-o=go-template-file` 时，使用的模板字符串或指向模板文件的路径。模板格式是 Go 语言模板 [http://golang.org/pkg/text/template/#pkg-overview]。</p>
         </td>
     </tr>
     </tbody>
 </table>
 
+## 从父命令继承的选项 {#options-inherited-from-parent-commands}
 
-
-## Options inherited from parent commands
 <table style="width: 100%; table-layout: fixed;">
     <colgroup>
         <col span="1" style="width: 10px;" />
@@ -163,7 +155,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Username to impersonate for the operation. User could be a regular user or a service account in a namespace.</p>
+            <p>为操作模拟的用户名。用户可以是普通用户或命名空间中的服务账户。</p>
         </td>
     </tr>
     <tr>
@@ -172,7 +164,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Group to impersonate for the operation, this flag can be repeated to specify multiple groups.</p>
+            <p>为操作模拟的组，此标志可以重复使用，以指定多个组。</p>
         </td>
     </tr>
     <tr>
@@ -181,7 +173,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>UID to impersonate for the operation.</p>
+            <p>为操作模拟的 UID。</p>
         </td>
     </tr>
     <tr>
@@ -190,7 +182,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Default cache directory</p>
+            <p>默认缓存目录</p>
         </td>
     </tr>
     <tr>
@@ -199,7 +191,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Path to a cert file for the certificate authority</p>
+            <p>证书颁发机构证书文件的路径</p>
         </td>
     </tr>
     <tr>
@@ -208,7 +200,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Path to a client certificate file for TLS</p>
+            <p>TLS 客户端证书文件的路径</p>
         </td>
     </tr>
     <tr>
@@ -217,7 +209,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Path to a client key file for TLS</p>
+            <p>TLS 客户端密钥文件的路径</p>
         </td>
     </tr>
     <tr>
@@ -226,7 +218,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>The name of the kubeconfig cluster to use</p>
+            <p>要使用的 kubeconfig 集群的名称</p>
         </td>
     </tr>
     <tr>
@@ -235,7 +227,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>The name of the kubeconfig context to use</p>
+            <p>要使用的 kubeconfig 上下文的名称</p>
         </td>
     </tr>
     <tr>
@@ -244,7 +236,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>If true, opt-out of response compression for all requests to the server</p>
+            <p>如果为 true，则取消对所有服务器请求的响应压缩</p>
         </td>
     </tr>
     <tr>
@@ -253,7 +245,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>If true, the server&#39;s certificate will not be checked for validity. This will make your HTTPS connections insecure</p>
+            <p>如果为 true，将不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全</p>
         </td>
     </tr>
     <tr>
@@ -262,7 +254,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Path to the kubeconfig file to use for CLI requests.</p>
+            <p>用于 CLI 请求的 kubeconfig 文件路径。</p>
         </td>
     </tr>
     <tr>
@@ -271,7 +263,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>If present, the namespace scope for this CLI request</p>
+            <p>如果存在，则为此次 CLI 请求的命名空间范围</p>
         </td>
     </tr>
     <tr>
@@ -280,7 +272,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don&#39;t timeout requests.</p>
+            <p>在放弃单个服务器请求之前要等待的时间长度。非零值应包含相应的时间单位（例如 1s、2m、3h）。零值意味着不要超时请求。</p>
         </td>
     </tr>
     <tr>
@@ -289,7 +281,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>The address and port of the Kubernetes API server</p>
+            <p>Kubernetes API 服务器的地址和端口</p>
         </td>
     </tr>
     <tr>
@@ -298,7 +290,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used</p>
+            <p>用于服务器证书验证的服务器名称。如果未提供，则使用联系服务器所用的主机名</p>
         </td>
     </tr>
     <tr>
@@ -307,7 +299,7 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>Bearer token for authentication to the API server</p>
+            <p>API 服务器身份验证所用的持有者令牌</p>
         </td>
     </tr>
     <tr>
@@ -316,15 +308,12 @@ kueuectl list workload [--clusterqueue CLUSTER_QUEUE_NAME] [--localqueue LOCAL_Q
     <tr>
         <td></td>
         <td style="line-height: 130%; word-wrap: break-word;">
-            <p>The name of the kubeconfig user to use</p>
+            <p>要使用的 kubeconfig 用户的名称</p>
         </td>
     </tr>
     </tbody>
 </table>
 
+## 参见
 
-
-## See Also
-
-* [kueuectl list](../)	 - Display resources
-
+* [kueuectl list](../) - 显示资源



Test patch:
diff --git a/pkg/cache/tas_cache_test.go b/pkg/cache/tas_cache_test.go
index b2e751dd5..d11a0c123 100644
--- a/pkg/cache/tas_cache_test.go
+++ b/pkg/cache/tas_cache_test.go
@@ -192,6 +192,80 @@ func TestFindTopologyAssignments(t *testing.T) {
 			Ready().
 			Obj(),
 	}
+
+	//		b1                b2
+	//	   /     \           /     \
+	//	 r1      r2        r1      r2
+	//	 |    /  |  \      |        |
+	//	x1  x2  x3  x4    x5       x6
+	multipodNodeset := []corev1.Node{*testingnode.MakeNode("b1-r1-x1").
+		Label(tasBlockLabel, "b1").
+		Label(tasRackLabel, "r1").
+		Label(corev1.LabelHostname, "x1").
+		StatusAllocatable(corev1.ResourceList{
+			corev1.ResourceCPU:    resource.MustParse("10"),
+			corev1.ResourceMemory: resource.MustParse("1Gi"),
+			corev1.ResourcePods:   resource.MustParse("10"),
+		}).
+		Ready().
+		Obj(),
+		*testingnode.MakeNode("b1-r2-x2").
+			Label(tasBlockLabel, "b1").
+			Label(tasRackLabel, "r2").
+			Label(corev1.LabelHostname, "x2").
+			StatusAllocatable(corev1.ResourceList{
+				corev1.ResourceCPU:    resource.MustParse("10"),
+				corev1.ResourceMemory: resource.MustParse("1Gi"),
+				corev1.ResourcePods:   resource.MustParse("10"),
+			}).
+			Ready().
+			Obj(),
+		*testingnode.MakeNode("b1-r2-x3").
+			Label(tasBlockLabel, "b1").
+			Label(tasRackLabel, "r2").
+			Label(corev1.LabelHostname, "x3").
+			StatusAllocatable(corev1.ResourceList{
+				corev1.ResourceCPU:    resource.MustParse("10"),
+				corev1.ResourceMemory: resource.MustParse("1Gi"),
+				corev1.ResourcePods:   resource.MustParse("10"),
+			}).
+			Ready().
+			Obj(),
+		*testingnode.MakeNode("b1-r2-x4").
+			Label(tasBlockLabel, "b1").
+			Label(tasRackLabel, "r2").
+			Label(corev1.LabelHostname, "x4").
+			StatusAllocatable(corev1.ResourceList{
+				corev1.ResourceCPU:    resource.MustParse("10"),
+				corev1.ResourceMemory: resource.MustParse("1Gi"),
+				corev1.ResourcePods:   resource.MustParse("10"),
+			}).
+			Ready().
+			Obj(),
+		*testingnode.MakeNode("b2-r1-x5").
+			Label(tasBlockLabel, "b2").
+			Label(tasRackLabel, "r1").
+			Label(corev1.LabelHostname, "x5").
+			StatusAllocatable(corev1.ResourceList{
+				corev1.ResourceCPU:    resource.MustParse("10"),
+				corev1.ResourceMemory: resource.MustParse("1Gi"),
+				corev1.ResourcePods:   resource.MustParse("10"),
+			}).
+			Ready().
+			Obj(),
+		*testingnode.MakeNode("b2-r2-x6").
+			Label(tasBlockLabel, "b2").
+			Label(tasRackLabel, "r2").
+			Label(corev1.LabelHostname, "x6").
+			StatusAllocatable(corev1.ResourceList{
+				corev1.ResourceCPU:    resource.MustParse("20"),
+				corev1.ResourceMemory: resource.MustParse("4Gi"),
+				corev1.ResourcePods:   resource.MustParse("40"),
+			}).
+			Ready().
+			Obj(),
+	}
+
 	defaultOneLevel := []string{
 		corev1.LabelHostname,
 	}
@@ -3815,6 +3889,211 @@ func TestFindTopologyAssignments(t *testing.T) {
 				},
 			},
 		},
+		"multiple podsets: rack required for both, different resource requests; BestFit": {
+			nodes:  multipodNodeset,
+			levels: defaultTwoLevels,
+			podSets: []PodSetTestCase{
+				{
+					podSetName: "podset1",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Required: ptr.To(tasRackLabel),
+					},
+					requests: resources.Requests{
+						corev1.ResourceCPU: 1000,
+					},
+					count: 2,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: defaultTwoLevels,
+						Domains: []kueue.TopologyDomainAssignment{
+							{
+								Count:  2,
+								Values: []string{"b1", "r1"},
+							},
+						},
+					},
+				},
+				{
+					podSetName: "podset2",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Required: ptr.To(tasRackLabel),
+					},
+					requests: resources.Requests{
+						corev1.ResourceMemory: 1024,
+					},
+					count: 1,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: defaultTwoLevels,
+						Domains: []kueue.TopologyDomainAssignment{
+							{
+								Count:  1,
+								Values: []string{"b1", "r1"},
+							},
+						},
+					},
+				},
+			},
+		},
+
+		"multiple podsets: block required for one, unconstrained for another; LeastFreeCapacity": {
+			nodes:              multipodNodeset,
+			levels:             defaultThreeLevels,
+			enableFeatureGates: []featuregate.Feature{features.TASProfileLeastFreeCapacity},
+			podSets: []PodSetTestCase{
+				{
+					podSetName: "podset1",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Required: ptr.To(tasBlockLabel),
+					},
+					requests: resources.Requests{
+						corev1.ResourceCPU: 1000,
+					},
+					count: 9,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: []string{corev1.LabelHostname},
+						Domains: []kueue.TopologyDomainAssignment{
+							{Count: 9, Values: []string{"x5"}},
+						},
+					},
+				},
+				{
+					podSetName: "podset2",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Unconstrained: ptr.To(true),
+					},
+					requests: resources.Requests{
+						corev1.ResourceCPU: 1000,
+					},
+					count: 2,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: []string{corev1.LabelHostname},
+						Domains: []kueue.TopologyDomainAssignment{
+							{Count: 2, Values: []string{"x1"}},
+						},
+					},
+				},
+			},
+		},
+
+		"multiple podsets: rack required for both, different resource requests; LeastFreeCapacity": {
+			nodes:              multipodNodeset,
+			levels:             defaultTwoLevels,
+			enableFeatureGates: []featuregate.Feature{features.TASProfileLeastFreeCapacity},
+			podSets: []PodSetTestCase{
+				{
+					podSetName: "podset1",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Required: ptr.To(tasRackLabel),
+					},
+					requests: resources.Requests{
+						corev1.ResourceCPU: 1000,
+					},
+					count: 1,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: defaultTwoLevels,
+						Domains: []kueue.TopologyDomainAssignment{
+							{Count: 1, Values: []string{"b1", "r1"}},
+						},
+					},
+				},
+				{
+					podSetName: "podset2",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Required: ptr.To(tasRackLabel),
+					},
+					requests: resources.Requests{
+						corev1.ResourceMemory: 1024,
+						corev1.ResourceCPU:    1000,
+					},
+					count: 1,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: defaultTwoLevels,
+						Domains: []kueue.TopologyDomainAssignment{
+							{Count: 1, Values: []string{"b1", "r1"}},
+						},
+					},
+				},
+			},
+		},
+
+		"multiple podsets: one podset fits, one does not due to insufficient capacity; LeastFreeCapacity": {
+			nodes:              multipodNodeset,
+			levels:             defaultTwoLevels,
+			enableFeatureGates: []featuregate.Feature{features.TASProfileLeastFreeCapacity},
+			podSets: []PodSetTestCase{
+				{
+					podSetName: "podset1",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Required: ptr.To(tasRackLabel),
+					},
+					requests: resources.Requests{
+						corev1.ResourceCPU: 1000,
+					},
+					count: 10,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: defaultTwoLevels,
+						Domains: []kueue.TopologyDomainAssignment{
+							{Count: 10, Values: []string{"b1", "r1"}},
+						},
+					},
+				},
+				{
+					podSetName: "podset2",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Required: ptr.To(tasRackLabel),
+					},
+					requests: resources.Requests{
+						corev1.ResourceCPU: 1000,
+					},
+					count: 2,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: defaultTwoLevels,
+						Domains: []kueue.TopologyDomainAssignment{
+							{Count: 2, Values: []string{"b2", "r1"}},
+						},
+					},
+				},
+			},
+		},
+
+		"multiple podsets: block required for one, unconstrained for another; TASProfileMixed": {
+			nodes:              multipodNodeset,
+			levels:             defaultThreeLevels,
+			enableFeatureGates: []featuregate.Feature{features.TASProfileMixed},
+			podSets: []PodSetTestCase{
+				{
+					podSetName: "podset1",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Required: ptr.To(tasBlockLabel),
+					},
+					requests: resources.Requests{
+						corev1.ResourceCPU: 1000,
+					},
+					count: 8,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: []string{corev1.LabelHostname},
+						Domains: []kueue.TopologyDomainAssignment{
+							{Count: 8, Values: []string{"x5"}},
+						},
+					},
+				},
+				{
+					podSetName: "podset2",
+					topologyRequest: &kueue.PodSetTopologyRequest{
+						Unconstrained: ptr.To(true),
+					},
+					requests: resources.Requests{
+						corev1.ResourceCPU: 1000,
+					},
+					count: 2,
+					wantAssignment: &kueue.TopologyAssignment{
+						Levels: []string{corev1.LabelHostname},
+						Domains: []kueue.TopologyDomainAssignment{
+							{Count: 2, Values: []string{"x5"}},
+						},
+					},
+				},
+			},
+		},
 	}
 	for name, tc := range cases {
 		t.Run(name, func(t *testing.T) {
diff --git a/pkg/controller/admissionchecks/provisioning/controller_test.go b/pkg/controller/admissionchecks/provisioning/controller_test.go
index ed7c229d1..250421f7a 100644
--- a/pkg/controller/admissionchecks/provisioning/controller_test.go
+++ b/pkg/controller/admissionchecks/provisioning/controller_test.go
@@ -616,15 +616,15 @@ func TestReconcile(t *testing.T) {
 							{
 								Name: "ps1",
 								Annotations: map[string]string{
-									ConsumesAnnotationKey:  "wl-check1-1",
-									ClassNameAnnotationKey: "class1",
+									autoscaling.ProvisioningRequestPodAnnotationKey: "wl-check1-1",
+									autoscaling.ProvisioningClassPodAnnotationKey:   "class1",
 								},
 							},
 							{
 								Name: "ps2",
 								Annotations: map[string]string{
-									ConsumesAnnotationKey:  "wl-check1-1",
-									ClassNameAnnotationKey: "class1",
+									autoscaling.ProvisioningRequestPodAnnotationKey: "wl-check1-1",
+									autoscaling.ProvisioningClassPodAnnotationKey:   "class1",
 								},
 							},
 						},
@@ -1177,8 +1177,8 @@ func TestReconcile(t *testing.T) {
 							{
 								Name: "ps1",
 								Annotations: map[string]string{
-									ConsumesAnnotationKey:  "wl-check1-1",
-									ClassNameAnnotationKey: "class1",
+									autoscaling.ProvisioningRequestPodAnnotationKey: "wl-check1-1",
+									autoscaling.ProvisioningClassPodAnnotationKey:   "class1",
 								},
 								NodeSelector: map[string]string{
 									"node-selector-key": "nodes-selector-xyz",
@@ -1187,8 +1187,8 @@ func TestReconcile(t *testing.T) {
 							{
 								Name: "ps2",
 								Annotations: map[string]string{
-									ConsumesAnnotationKey:  "wl-check1-1",
-									ClassNameAnnotationKey: "class1",
+									autoscaling.ProvisioningRequestPodAnnotationKey: "wl-check1-1",
+									autoscaling.ProvisioningClassPodAnnotationKey:   "class1",
 								},
 								NodeSelector: map[string]string{
 									"node-selector-key": "nodes-selector-xyz",
@@ -1226,15 +1226,15 @@ func TestReconcile(t *testing.T) {
 							{
 								Name: "ps1",
 								Annotations: map[string]string{
-									ConsumesAnnotationKey:  "wl-check1-1",
-									ClassNameAnnotationKey: "class1",
+									autoscaling.ProvisioningRequestPodAnnotationKey: "wl-check1-1",
+									autoscaling.ProvisioningClassPodAnnotationKey:   "class1",
 								},
 							},
 							{
 								Name: "ps2",
 								Annotations: map[string]string{
-									ConsumesAnnotationKey:  "wl-check1-1",
-									ClassNameAnnotationKey: "class1",
+									autoscaling.ProvisioningRequestPodAnnotationKey: "wl-check1-1",
+									autoscaling.ProvisioningClassPodAnnotationKey:   "class1",
 								},
 							},
 						},
diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go
index 081567486..0ade17e8a 100644
--- a/pkg/scheduler/scheduler_test.go
+++ b/pkg/scheduler/scheduler_test.go
@@ -34,7 +34,6 @@ import (
 	"k8s.io/apimachinery/pkg/api/resource"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
-	"k8s.io/apimachinery/pkg/types"
 	"k8s.io/apimachinery/pkg/util/sets"
 	"k8s.io/apimachinery/pkg/util/validation/field"
 	"k8s.io/client-go/tools/record"
@@ -172,78 +171,14 @@ func TestSchedule(t *testing.T) {
 			Obj(),
 	}
 	queues := []kueue.LocalQueue{
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "sales",
-				Name:      "main",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "sales",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "sales",
-				Name:      "blocked",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "eng-alpha",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "eng-alpha",
-				Name:      "main",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "eng-alpha",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "eng-beta",
-				Name:      "main",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "eng-beta",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "sales",
-				Name:      "flavor-nonexistent-queue",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "flavor-nonexistent-cq",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "sales",
-				Name:      "cq-nonexistent-queue",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "nonexistent-cq",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "lend",
-				Name:      "lend-a-queue",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "lend-a",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "lend",
-				Name:      "lend-b-queue",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "lend-b",
-			},
-		},
+		*utiltesting.MakeLocalQueue("main", "sales").ClusterQueue("sales").Obj(),
+		*utiltesting.MakeLocalQueue("blocked", "sales").ClusterQueue("eng-alpha").Obj(),
+		*utiltesting.MakeLocalQueue("main", "eng-alpha").ClusterQueue("eng-alpha").Obj(),
+		*utiltesting.MakeLocalQueue("main", "eng-beta").ClusterQueue("eng-beta").Obj(),
+		*utiltesting.MakeLocalQueue("flavor-nonexistent-queue", "sales").ClusterQueue("flavor-nonexistent-cq").Obj(),
+		*utiltesting.MakeLocalQueue("cq-nonexistent-queue", "sales").ClusterQueue("nonexistent-cq").Obj(),
+		*utiltesting.MakeLocalQueue("lend-a-queue", "lend").ClusterQueue("lend-a").Obj(),
+		*utiltesting.MakeLocalQueue("lend-b-queue", "lend").ClusterQueue("lend-b").Obj(),
 	}
 	cases := map[string]struct {
 		// Features
@@ -324,31 +259,21 @@ func TestSchedule(t *testing.T) {
 				"eng-alpha/admitted": {
 					ClusterQueue: "other-alpha",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "main",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("50"),
-							},
-							Count: ptr.To[int32](1),
-						},
+						utiltesting.MakePodSetAssignment("main").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "50").
+							Count(1).
+							Obj(),
 					},
 				},
 				"eng-alpha/new": {
 					ClusterQueue: "other-alpha",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "main",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "spot",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("20"),
-							},
-							Count: ptr.To[int32](1),
-						},
+						utiltesting.MakePodSetAssignment("main").
+							Flavor(corev1.ResourceCPU, "spot").
+							ResourceUsage(corev1.ResourceCPU, "20").
+							Count(1).
+							Obj(),
 					},
 				},
 			},
@@ -372,16 +297,11 @@ func TestSchedule(t *testing.T) {
 				"sales/foo": {
 					ClusterQueue: "sales",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("10000m"),
-							},
-							Count: ptr.To[int32](10),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "10000m").
+							Count(10).
+							Obj(),
 					},
 				},
 			},
@@ -428,16 +348,8 @@ func TestSchedule(t *testing.T) {
 			},
 			eventCmpOpts: ignoreEventMessageCmpOpts,
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "sales", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "sales", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("sales", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("sales", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"skip workload with missing or deleted ClusterQueue (NoFit)": {
@@ -472,27 +384,18 @@ func TestSchedule(t *testing.T) {
 				"sales/foo": {
 					ClusterQueue: "sales",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("10000m"),
-							},
-							Count: ptr.To[int32](10),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "10000m").
+							Count(10).
+							Obj(),
 					},
 				},
 			},
 			wantScheduled: []workload.Reference{"sales/foo"},
 			eventCmpOpts:  ignoreEventMessageCmpOpts,
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "sales", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("sales", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"error during admission": {
@@ -528,16 +431,11 @@ func TestSchedule(t *testing.T) {
 				"sales/assigned": {
 					ClusterQueue: "sales",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("40000m"),
-							},
-							Count: ptr.To[int32](40),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "40000m").
+							Count(40).
+							Obj(),
 					},
 				},
 			},
@@ -577,31 +475,21 @@ func TestSchedule(t *testing.T) {
 				"sales/new": {
 					ClusterQueue: "sales",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("1000m"),
-							},
-							Count: ptr.To[int32](1),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "1000m").
+							Count(1).
+							Obj(),
 					},
 				},
 				"eng-alpha/new": {
 					ClusterQueue: "eng-alpha",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("51000m"),
-							},
-							Count: ptr.To[int32](51),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "51000m").
+							Count(51).
+							Obj(),
 					},
 				},
 			},
@@ -626,31 +514,21 @@ func TestSchedule(t *testing.T) {
 				"eng-alpha/new": {
 					ClusterQueue: "eng-alpha",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("40000m"),
-							},
-							Count: ptr.To[int32](40),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "40000m").
+							Count(40).
+							Obj(),
 					},
 				},
 				"eng-beta/new": {
 					ClusterQueue: "eng-beta",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("40000m"),
-							},
-							Count: ptr.To[int32](40),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "40000m").
+							Count(40).
+							Obj(),
 					},
 				},
 			},
@@ -675,28 +553,18 @@ func TestSchedule(t *testing.T) {
 				"eng-beta/new": {
 					ClusterQueue: "eng-beta",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-								"example.com/gpu":  "model-a",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("60000m"),
-								"example.com/gpu":  resource.MustParse("10"),
-							},
-							Count: ptr.To[int32](10),
-						},
-						{
-							Name: "two",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "spot",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("40000m"),
-							},
-							Count: ptr.To[int32](40),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							Flavor("example.com/gpu", "model-a").
+							ResourceUsage(corev1.ResourceCPU, "60000m").
+							ResourceUsage("example.com/gpu", "10").
+							Count(10).
+							Obj(),
+						utiltesting.MakePodSetAssignment("two").
+							Flavor(corev1.ResourceCPU, "spot").
+							ResourceUsage(corev1.ResourceCPU, "40000m").
+							Count(40).
+							Obj(),
 					},
 				},
 			},
@@ -721,16 +589,11 @@ func TestSchedule(t *testing.T) {
 				"eng-alpha/new": {
 					ClusterQueue: "eng-alpha",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("45000m"),
-							},
-							Count: ptr.To[int32](45),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "45000m").
+							Count(45).
+							Obj(),
 					},
 				},
 			},
@@ -758,31 +621,21 @@ func TestSchedule(t *testing.T) {
 				"eng-alpha/new": {
 					ClusterQueue: "eng-alpha",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("45000m"),
-							},
-							Count: ptr.To[int32](45),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "45000m").
+							Count(45).
+							Obj(),
 					},
 				},
 				"eng-beta/new": {
 					ClusterQueue: "eng-beta",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("55000m"),
-							},
-							Count: ptr.To[int32](55),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "55000m").
+							Count(55).
+							Obj(),
 					},
 				},
 			},
@@ -979,31 +832,21 @@ func TestSchedule(t *testing.T) {
 				"eng-alpha/new": {
 					ClusterQueue: "eng-alpha",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "spot",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("60000m"),
-							},
-							Count: ptr.To[int32](60),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "spot").
+							ResourceUsage(corev1.ResourceCPU, "60000m").
+							Count(60).
+							Obj(),
 					},
 				},
 				"eng-beta/existing": {
 					ClusterQueue: "eng-beta",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("45000m"),
-							},
-							Count: ptr.To[int32](45),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "45000m").
+							Count(45).
+							Obj(),
 					},
 				},
 			},
@@ -1062,26 +905,16 @@ func TestSchedule(t *testing.T) {
 					).
 					ReserveQuota(utiltesting.MakeAdmission("eng-gamma").
 						PodSets(
-							kueue.PodSetAssignment{
-								Name: "borrow-on-demand",
-								Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-									corev1.ResourceCPU: "on-demand",
-								},
-								ResourceUsage: corev1.ResourceList{
-									corev1.ResourceCPU: resource.MustParse("51"),
-								},
-								Count: ptr.To[int32](51),
-							},
-							kueue.PodSetAssignment{
-								Name: "use-all-spot",
-								Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-									corev1.ResourceCPU: "spot",
-								},
-								ResourceUsage: corev1.ResourceList{
-									corev1.ResourceCPU: resource.MustParse("100"),
-								},
-								Count: ptr.To[int32](100),
-							},
+							utiltesting.MakePodSetAssignment("borrow-on-demand").
+								Flavor(corev1.ResourceCPU, "on-demand").
+								ResourceUsage(corev1.ResourceCPU, "51").
+								Count(51).
+								Obj(),
+							utiltesting.MakePodSetAssignment("use-all-spot").
+								Flavor(corev1.ResourceCPU, "spot").
+								ResourceUsage(corev1.ResourceCPU, "100").
+								Count(100).
+								Obj(),
 						).
 						Obj()).
 					Obj(),
@@ -1102,39 +935,21 @@ func TestSchedule(t *testing.T) {
 					Obj(),
 			},
 			additionalLocalQueues: []kueue.LocalQueue{
-				{
-					ObjectMeta: metav1.ObjectMeta{
-						Namespace: "eng-gamma",
-						Name:      "main",
-					},
-					Spec: kueue.LocalQueueSpec{
-						ClusterQueue: "eng-gamma",
-					},
-				},
+				*utiltesting.MakeLocalQueue("main", "eng-gamma").ClusterQueue("eng-gamma").Obj(),
 			},
 			wantAssignments: map[workload.Reference]kueue.Admission{
 				"eng-gamma/existing": *utiltesting.MakeAdmission("eng-gamma").
 					PodSets(
-						kueue.PodSetAssignment{
-							Name: "borrow-on-demand",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "on-demand",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("51"),
-							},
-							Count: ptr.To[int32](51),
-						},
-						kueue.PodSetAssignment{
-							Name: "use-all-spot",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "spot",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("100"),
-							},
-							Count: ptr.To[int32](100),
-						},
+						utiltesting.MakePodSetAssignment("borrow-on-demand").
+							Flavor(corev1.ResourceCPU, "on-demand").
+							ResourceUsage(corev1.ResourceCPU, "51").
+							Count(51).
+							Obj(),
+						utiltesting.MakePodSetAssignment("use-all-spot").
+							Flavor(corev1.ResourceCPU, "spot").
+							ResourceUsage(corev1.ResourceCPU, "100").
+							Count(100).
+							Obj(),
 					).Obj(),
 				"eng-beta/new":        *utiltesting.MakeAdmission("eng-beta", "one").Assignment(corev1.ResourceCPU, "on-demand", "50").AssignmentPodCount(50).Obj(),
 				"eng-alpha/new-alpha": *utiltesting.MakeAdmission("eng-alpha", "one").Assignment(corev1.ResourceCPU, "on-demand", "1").AssignmentPodCount(1).Obj(),
@@ -1163,16 +978,11 @@ func TestSchedule(t *testing.T) {
 				"sales/new": {
 					ClusterQueue: "sales",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("50000m"),
-							},
-							Count: ptr.To[int32](25),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "50000m").
+							Count(25).
+							Obj(),
 					},
 				},
 			},
@@ -1200,16 +1010,11 @@ func TestSchedule(t *testing.T) {
 				"eng-beta/old": {
 					ClusterQueue: "eng-beta",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								"example.com/gpu": "model-a",
-							},
-							ResourceUsage: corev1.ResourceList{
-								"example.com/gpu": resource.MustParse("10"),
-							},
-							Count: ptr.To[int32](10),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor("example.com/gpu", "model-a").
+							ResourceUsage("example.com/gpu", "10").
+							Count(10).
+							Obj(),
 					},
 				},
 			},
@@ -1240,16 +1045,11 @@ func TestSchedule(t *testing.T) {
 				"eng-beta/old": {
 					ClusterQueue: "eng-beta",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								"example.com/gpu": "model-a",
-							},
-							ResourceUsage: corev1.ResourceList{
-								"example.com/gpu": resource.MustParse("10"),
-							},
-							Count: ptr.To[int32](10),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor("example.com/gpu", "model-a").
+							ResourceUsage("example.com/gpu", "10").
+							Count(10).
+							Obj(),
 					},
 				},
 			},
@@ -1281,36 +1081,21 @@ func TestSchedule(t *testing.T) {
 				"sales/new": {
 					ClusterQueue: "sales",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("20000m"),
-							},
-							Count: ptr.To[int32](20),
-						},
-						{
-							Name: "two",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("20000m"),
-							},
-							Count: ptr.To[int32](20),
-						},
-						{
-							Name: "three",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("10000m"),
-							},
-							Count: ptr.To[int32](10),
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "20000m").
+							Count(20).
+							Obj(),
+						utiltesting.MakePodSetAssignment("two").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "20000m").
+							Count(20).
+							Obj(),
+						utiltesting.MakePodSetAssignment("three").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "10000m").
+							Count(10).
+							Obj(),
 					},
 				},
 			},
@@ -1480,24 +1265,8 @@ func TestSchedule(t *testing.T) {
 					Obj(),
 			},
 			additionalLocalQueues: []kueue.LocalQueue{
-				{
-					ObjectMeta: metav1.ObjectMeta{
-						Namespace: "eng-alpha",
-						Name:      "lq_a",
-					},
-					Spec: kueue.LocalQueueSpec{
-						ClusterQueue: "cq_a",
-					},
-				},
-				{
-					ObjectMeta: metav1.ObjectMeta{
-						Namespace: "eng-beta",
-						Name:      "lq_b",
-					},
-					Spec: kueue.LocalQueueSpec{
-						ClusterQueue: "cq_b",
-					},
-				},
+				*utiltesting.MakeLocalQueue("lq_a", "eng-alpha").ClusterQueue("cq_a").Obj(),
+				*utiltesting.MakeLocalQueue("lq_b", "eng-beta").ClusterQueue("cq_b").Obj(),
 			},
 			workloads: []kueue.Workload{
 				*utiltesting.MakeWorkload("a", "eng-alpha").
@@ -1523,16 +1292,11 @@ func TestSchedule(t *testing.T) {
 					).
 					ReserveQuota(utiltesting.MakeAdmission("cq_a").
 						PodSets(
-							kueue.PodSetAssignment{
-								Name: kueue.DefaultPodSetName,
-								Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-									corev1.ResourceCPU: "default",
-								},
-								ResourceUsage: corev1.ResourceList{
-									corev1.ResourceCPU: resource.MustParse("2"),
-								},
-								Count: ptr.To[int32](1),
-							},
+							utiltesting.MakePodSetAssignment(kueue.DefaultPodSetName).
+								Flavor(corev1.ResourceCPU, "default").
+								ResourceUsage(corev1.ResourceCPU, "2").
+								Count(1).
+								Obj(),
 						).
 						Obj()).
 					Obj(),
@@ -1541,31 +1305,21 @@ func TestSchedule(t *testing.T) {
 				"eng-alpha/admitted_a": {
 					ClusterQueue: "cq_a",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: kueue.DefaultPodSetName,
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("2"),
-							},
-							Count: ptr.To[int32](1),
-						},
+						utiltesting.MakePodSetAssignment(kueue.DefaultPodSetName).
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "2").
+							Count(1).
+							Obj(),
 					},
 				},
 				"eng-beta/b": {
 					ClusterQueue: "cq_b",
 					PodSetAssignments: []kueue.PodSetAssignment{
-						{
-							Name: kueue.DefaultPodSetName,
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("1"),
-							},
-							Count: ptr.To[int32](1),
-						},
+						utiltesting.MakePodSetAssignment(kueue.DefaultPodSetName).
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "1").
+							Count(1).
+							Obj(),
 					},
 				},
 			},
@@ -2677,19 +2431,16 @@ func TestSchedule(t *testing.T) {
 				"sales": {"sales/new"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "sales", Name: "new"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-					Message: fmt.Sprintf("%s: %s",
+				utiltesting.MakeEventRecord("sales", "new", "Pending", corev1.EventTypeWarning).
+					Message(fmt.Sprintf("%s: %s",
 						errLimitRangeConstraintsUnsatisfiedResources,
 						field.Invalid(
 							workload.PodSetsPath.Index(0).Child("template").Child("spec").Child("containers").Index(0),
 							[]corev1.ResourceName{corev1.ResourceCPU},
 							limitrange.RequestsMustNotBeAboveLimitRangeMaxMessage,
 						).Error(),
-					),
-				},
+					)).
+					Obj(),
 			},
 		},
 		"container resource requests exceed limits": {
@@ -2706,18 +2457,15 @@ func TestSchedule(t *testing.T) {
 				"sales": {"sales/new"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "sales", Name: "new"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-					Message: fmt.Sprintf("%s: %s",
+				utiltesting.MakeEventRecord("sales", "new", "Pending", corev1.EventTypeWarning).
+					Message(fmt.Sprintf("%s: %s",
 						errInvalidWLResources,
 						field.Invalid(
 							workload.PodSetsPath.Index(0).Child("template").Child("spec").Child("containers").Index(0),
 							[]corev1.ResourceName{corev1.ResourceCPU}, workload.RequestsMustNotExceedLimitMessage,
 						).Error(),
-					),
-				},
+					)).
+					Obj(),
 			},
 		},
 		"not enough resources with fair sharing enabled": {
@@ -3483,21 +3231,9 @@ func TestSchedule(t *testing.T) {
 			},
 			eventCmpOpts: ignoreEventMessageCmpOpts,
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "sales", Name: "foo-1"},
-					Reason:    kueue.WorkloadSliceReplaced,
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "sales", Name: "foo-2"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "sales", Name: "foo-2"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("sales", "foo-1", kueue.WorkloadSliceReplaced, corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("sales", "foo-2", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("sales", "foo-2", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 	}
@@ -4039,42 +3775,10 @@ func TestLastSchedulingContext(t *testing.T) {
 	}
 
 	queues := []kueue.LocalQueue{
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "main",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "eng-alpha",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "main-alpha",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "eng-cohort-alpha",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "main-beta",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "eng-cohort-beta",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "main-theta",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "eng-cohort-theta",
-			},
-		},
+		*utiltesting.MakeLocalQueue("main", "default").ClusterQueue("eng-alpha").Obj(),
+		*utiltesting.MakeLocalQueue("main-alpha", "default").ClusterQueue("eng-cohort-alpha").Obj(),
+		*utiltesting.MakeLocalQueue("main-beta", "default").ClusterQueue("eng-cohort-beta").Obj(),
+		*utiltesting.MakeLocalQueue("main-theta", "default").ClusterQueue("eng-cohort-theta").Obj(),
 	}
 	cases := []struct {
 		name                           string
@@ -4960,15 +4664,7 @@ func TestScheduleForTAS(t *testing.T) {
 		AdmissionChecks(kueue.AdmissionCheckReference(defaultCustomCheck.Name)).
 		Obj()
 	queues := []kueue.LocalQueue{
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "tas-main",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "tas-main",
-			},
-		},
+		*utiltesting.MakeLocalQueue("tas-main", "default").ClusterQueue("tas-main").Obj(),
 	}
 	eventIgnoreMessage := cmpopts.IgnoreFields(utiltesting.EventRecord{}, "Message")
 	cases := map[string]struct {
@@ -5027,36 +4723,18 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "launcher", "worker").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
 					AssignmentWithIndex(1, corev1.ResourceCPU, "tas-default", "0").
 					AssignmentPodCountWithIndex(1, 0).
-					TopologyAssignmentWithIndex(1, &kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-					}).
+					TopologyAssignmentWithIndex(1, utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).Obj()).
 					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload in CQ with ProvisioningRequest; second pass; baseline scenario": {
@@ -5089,25 +4767,14 @@ func TestScheduleForTAS(t *testing.T) {
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
 					DelayedTopologyRequest(kueue.DelayedTopologyRequestStateReady).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload in CQ with two TAS flavors, only the second is using Provisioning Admission Check": {
@@ -5161,30 +4828,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-reservation", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload with nodeToReplace annotation; second pass; baseline scenario": {
@@ -5205,17 +4857,9 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x0",
-										},
-									},
-								},
-							}).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+								Obj()).
 							Obj(),
 					).
 					Admitted(true).
@@ -5225,17 +4869,10 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 		},
 		"workload with nodeToReplace annotation; second pass; preferred; fit in different rack": {
@@ -5256,23 +4893,10 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x0",
-										},
-									},
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
 							Obj(),
 					).
 					Admitted(true).
@@ -5282,23 +4906,11 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-							{
-								Count: 1,
-								Values: []string{
-									"x5",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x5"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 		},
 		"workload with nodeToReplace annotation; second pass; preferred; no fit": {
@@ -5319,17 +4931,9 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "3000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x0",
-										},
-									},
-								},
-							}).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+								Obj()).
 							Obj(),
 					).
 					Admitted(true).
@@ -5339,25 +4943,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "3000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x0",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: corev1.EventTypeWarning,
-					Reason:    "SecondPassFailed",
-					Message:   "couldn't assign flavors to pod set one: topology \"tas-three-level\" doesn't allow to fit any of 1 pod(s)",
-				},
+				utiltesting.MakeEventRecord("default", "foo", "SecondPassFailed", corev1.EventTypeWarning).
+					Message("couldn't assign flavors to pod set one: topology \"tas-three-level\" doesn't allow to fit any of 1 pod(s)").
+					Obj(),
 			},
 		},
 		"workload with nodeToReplace annotation; second pass; preferred; no fit; FailFast": {
@@ -5378,17 +4972,9 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "3000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x0",
-										},
-									},
-								},
-							}).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+								Obj()).
 							Obj(),
 					).
 					Admitted(true).
@@ -5398,25 +4984,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "3000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x0",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: corev1.EventTypeNormal,
-					Reason:    "EvictedDueToNodeFailures",
-					Message:   "Workload was evicted as there was no replacement for a failed node: x0",
-				},
+				utiltesting.MakeEventRecord("default", "foo", "EvictedDueToNodeFailures", corev1.EventTypeNormal).
+					Message("Workload was evicted as there was no replacement for a failed node: x0").
+					Obj(),
 			},
 			featureGates: []featuregate.Feature{features.TASFailedNodeReplacementFailFast},
 		},
@@ -5438,23 +5014,10 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x0",
-										},
-									},
-									{
-										Count: 1,
-										Values: []string{
-											"x2",
-										},
-									},
-								},
-							}).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x2"}, 1).Obj()).
+								Obj()).
 							Obj(),
 					).
 					Admitted(true).
@@ -5464,23 +5027,11 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x2",
-								},
-							},
-							{
-								Count: 1,
-								Values: []string{
-									"x3",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x2"}, 1).Obj()).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x3"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 		},
 		"workload with nodeToReplace annotation; second pass; required rack for a single node; fit": {
@@ -5501,17 +5052,9 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x0",
-										},
-									},
-								},
-							}).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+								Obj()).
 							Obj(),
 					).
 					Admitted(true).
@@ -5521,17 +5064,10 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 		},
 		"workload with nodeToReplace annotation; second pass; required rack; no fit": {
@@ -5552,23 +5088,10 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x0",
-										},
-									},
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
 							Obj(),
 					).
 					Admitted(true).
@@ -5578,31 +5101,16 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x0",
-								},
-							},
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: corev1.EventTypeWarning,
-					Reason:    "SecondPassFailed",
-					Message:   "couldn't assign flavors to pod set one: topology \"tas-three-level\" doesn't allow to fit any of 1 pod(s)",
-				},
+				utiltesting.MakeEventRecord("default", "foo", "SecondPassFailed", corev1.EventTypeWarning).
+					Message("couldn't assign flavors to pod set one: topology \"tas-three-level\" doesn't allow to fit any of 1 pod(s)").
+					Obj(),
 			},
 		},
 		"workload with nodeToReplace annotation; second pass; two podsets": {
@@ -5628,30 +5136,14 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one", "two").
 							Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x0",
-										},
-									},
-								},
-							}).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x0"}, 1).Obj()).
+								Obj()).
 							AssignmentWithIndex(1, corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCountWithIndex(1, 1).
-							TopologyAssignmentWithIndex(1, &kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).
+							TopologyAssignmentWithIndex(1, utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
 							Obj(),
 					).
 					Admitted(true).
@@ -5661,30 +5153,14 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one", "two").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x2",
-								},
-							},
-						},
-					}).
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x2"}, 1).Obj()).
+						Obj()).
 					AssignmentWithIndex(1, corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCountWithIndex(1, 1).
-					TopologyAssignmentWithIndex(1, &kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).
+					TopologyAssignmentWithIndex(1, utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
 					Obj(),
 			},
 		},
@@ -5732,25 +5208,14 @@ func TestScheduleForTAS(t *testing.T) {
 					Assignment(corev1.ResourceCPU, "tas-default", "26").
 					AssignmentPodCount(26).
 					DelayedTopologyRequest(kueue.DelayedTopologyRequestStateReady).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 26,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 26).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload in CQ with ProvisioningRequest when two TAS flavors; second pass": {
@@ -5815,25 +5280,14 @@ func TestScheduleForTAS(t *testing.T) {
 					Assignment(corev1.ResourceCPU, "tas-second", "1000m").
 					AssignmentPodCount(1).
 					DelayedTopologyRequest(kueue.DelayedTopologyRequestStateReady).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload in CQ with two TAS flavors - one with ProvisioningRequest, one regular; second pass": {
@@ -5894,38 +5348,20 @@ func TestScheduleForTAS(t *testing.T) {
 					ReserveQuota(
 						utiltesting.MakeAdmission("tas-main", "one", "two").
 							PodSets(
-								kueue.PodSetAssignment{
-									Name: "one",
-									Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-										corev1.ResourceCPU: "tas-default",
-									},
-									ResourceUsage: corev1.ResourceList{
-										corev1.ResourceCPU: resource.MustParse("1"),
-									},
-									Count: ptr.To[int32](1),
-									TopologyAssignment: &kueue.TopologyAssignment{
-										Levels: utiltas.Levels(&defaultSingleLevelTopology),
-										Domains: []kueue.TopologyDomainAssignment{
-											{
-												Count: 1,
-												Values: []string{
-													"x1",
-												},
-											},
-										},
-									},
-								},
-								kueue.PodSetAssignment{
-									Name: "two",
-									Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-										corev1.ResourceCPU: "tas-second",
-									},
-									ResourceUsage: corev1.ResourceList{
-										corev1.ResourceCPU: resource.MustParse("1"),
-									},
-									Count:                  ptr.To[int32](1),
-									DelayedTopologyRequest: ptr.To(kueue.DelayedTopologyRequestStatePending),
-								},
+								utiltesting.MakePodSetAssignment("one").
+									Flavor(corev1.ResourceCPU, "tas-default").
+									ResourceUsage(corev1.ResourceCPU, "1").
+									Count(1).
+									TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+										Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+										Obj()).
+									Obj(),
+								utiltesting.MakePodSetAssignment("two").
+									Flavor(corev1.ResourceCPU, "tas-second").
+									ResourceUsage(corev1.ResourceCPU, "1").
+									Count(1).
+									DelayedTopologyRequest(kueue.DelayedTopologyRequestStatePending).
+									Obj(),
 							).Obj(),
 					).
 					AdmissionCheck(kueue.AdmissionCheckState{
@@ -5937,58 +5373,28 @@ func TestScheduleForTAS(t *testing.T) {
 			wantNewAssignments: map[workload.Reference]kueue.Admission{
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one", "two").
 					PodSets(
-						kueue.PodSetAssignment{
-							Name: "one",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "tas-default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("1"),
-							},
-							Count: ptr.To[int32](1),
-							TopologyAssignment: &kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							},
-						},
-						kueue.PodSetAssignment{
-							Name: "two",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "tas-second",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("1"),
-							},
-							Count:                  ptr.To[int32](1),
-							DelayedTopologyRequest: ptr.To(kueue.DelayedTopologyRequestStateReady),
-							TopologyAssignment: &kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							},
-						},
+						utiltesting.MakePodSetAssignment("one").
+							Flavor(corev1.ResourceCPU, "tas-default").
+							ResourceUsage(corev1.ResourceCPU, "1").
+							Count(1).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
+						utiltesting.MakePodSetAssignment("two").
+							Flavor(corev1.ResourceCPU, "tas-second").
+							ResourceUsage(corev1.ResourceCPU, "1").
+							Count(1).
+							DelayedTopologyRequest(kueue.DelayedTopologyRequestStateReady).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload in CQ with ProvisioningRequest gets QuotaReserved only; implicit defaulting": {
@@ -6017,11 +5423,7 @@ func TestScheduleForTAS(t *testing.T) {
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload in CQ with ProvisioningRequest when two TAS flavors; second pass; implicit defaulting": {
@@ -6085,25 +5487,14 @@ func TestScheduleForTAS(t *testing.T) {
 					Assignment(corev1.ResourceCPU, "tas-second", "1000m").
 					AssignmentPodCount(1).
 					DelayedTopologyRequest(kueue.DelayedTopologyRequestStateReady).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload in CQ with ProvisioningRequest gets QuotaReserved only": {
@@ -6133,11 +5524,7 @@ func TestScheduleForTAS(t *testing.T) {
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload with a custom AdmissionCheck gets TAS assigned": {
@@ -6163,25 +5550,14 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload which does not specify TAS annotation uses the only TAS flavor": {
@@ -6207,30 +5583,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload requiring TAS skips the non-TAS flavor": {
@@ -6259,30 +5620,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload which does not need TAS skips the TAS flavor": {
@@ -6314,16 +5660,8 @@ func TestScheduleForTAS(t *testing.T) {
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload with mixed PodSets (requiring TAS and not)": {
@@ -6355,52 +5693,26 @@ func TestScheduleForTAS(t *testing.T) {
 			wantNewAssignments: map[workload.Reference]kueue.Admission{
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					PodSets(
-						kueue.PodSetAssignment{
-							Name: "launcher",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("500m"),
-							},
-							Count: ptr.To[int32](1),
-						},
-						kueue.PodSetAssignment{
-							Name: "worker",
-							Flavors: map[corev1.ResourceName]kueue.ResourceFlavorReference{
-								corev1.ResourceCPU: "tas-default",
-							},
-							ResourceUsage: corev1.ResourceList{
-								corev1.ResourceCPU: resource.MustParse("500m"),
-							},
-							Count: ptr.To[int32](1),
-							TopologyAssignment: &kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							},
-						},
+						utiltesting.MakePodSetAssignment("launcher").
+							Flavor(corev1.ResourceCPU, "default").
+							ResourceUsage(corev1.ResourceCPU, "500m").
+							Count(1).
+							Obj(),
+						utiltesting.MakePodSetAssignment("worker").
+							Flavor(corev1.ResourceCPU, "tas-default").
+							ResourceUsage(corev1.ResourceCPU, "500m").
+							Count(1).
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload required TAS gets scheduled": {
@@ -6421,30 +5733,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload requests topology level which is not present in topology": {
@@ -6465,12 +5762,9 @@ func TestScheduleForTAS(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: Flavor "tas-default" does not contain the requested level`,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: Flavor "tas-default" does not contain the requested level`).
+					Obj(),
 			},
 		},
 		"workload requests topology level which is only present in second flavor": {
@@ -6518,30 +5812,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-custom-flavor", "1").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: []string{"cloud.com/custom-level"},
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment([]string{"cloud.com/custom-level"}).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload does not get scheduled as it does not fit within the node capacity": {
@@ -6562,12 +5841,9 @@ func TestScheduleForTAS(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" allows to fit only 1 out of 2 pod(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" allows to fit only 1 out of 2 pod(s)`).
+					Obj(),
 			},
 		},
 		"workload does not get scheduled as the node capacity is already used by another TAS workload": {
@@ -6589,17 +5865,10 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -6612,12 +5881,9 @@ func TestScheduleForTAS(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s)`).
+					Obj(),
 			},
 		},
 		"workload does not get scheduled as the node capacity is already used by a non-TAS pod": {
@@ -6644,12 +5910,9 @@ func TestScheduleForTAS(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s)`).
+					Obj(),
 			},
 		},
 		"workload gets scheduled as the usage of TAS pods and workloads is not double-counted": {
@@ -6679,17 +5942,10 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "400m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -6702,30 +5958,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "500m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload gets admitted next to already admitted workload, multiple resources used": {
@@ -6749,17 +5990,10 @@ func TestScheduleForTAS(t *testing.T) {
 							Assignment(corev1.ResourceCPU, "tas-default", "500m").
 							Assignment(corev1.ResourceMemory, "tas-default", "500Mi").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -6774,30 +6008,15 @@ func TestScheduleForTAS(t *testing.T) {
 					Assignment(corev1.ResourceCPU, "tas-default", "500m").
 					Assignment(corev1.ResourceMemory, "tas-default", "500Mi").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload with multiple PodSets requesting the same TAS flavor; multiple levels": {
@@ -6850,12 +6069,9 @@ func TestScheduleForTAS(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set worker: topology "tas-two-level" doesn't allow to fit any of 1 pod(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set worker: topology "tas-two-level" doesn't allow to fit any of 1 pod(s)`).
+					Obj(),
 			},
 		},
 		"scheduling workload with multiple PodSets requesting TAS flavor and will succeed": {
@@ -6908,50 +6124,21 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "launcher", "worker").
 					AssignmentWithIndex(0, corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCountWithIndex(0, 1).
-					TopologyAssignmentWithIndex(0, &kueue.TopologyAssignment{
-						Levels: []string{corev1.LabelHostname},
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).
+					TopologyAssignmentWithIndex(0, utiltesting.MakeTopologyAssignment([]string{corev1.LabelHostname}).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
 					AssignmentWithIndex(1, corev1.ResourceCPU, "tas-default", "15000m").
 					AssignmentPodCountWithIndex(1, 15).
-					TopologyAssignmentWithIndex(1, &kueue.TopologyAssignment{
-						Levels: []string{corev1.LabelHostname},
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 7,
-								Values: []string{
-									"x1",
-								},
-							},
-							{
-								Count: 8,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).
+					TopologyAssignmentWithIndex(1, utiltesting.MakeTopologyAssignment([]string{corev1.LabelHostname}).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 7).Obj()).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 8).Obj()).
+						Obj()).
 					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"scheduling workload with multiple PodSets requesting higher level topology": {
@@ -7004,50 +6191,21 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "launcher", "worker").
 					AssignmentWithIndex(0, corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCountWithIndex(0, 1).
-					TopologyAssignmentWithIndex(0, &kueue.TopologyAssignment{
-						Levels: []string{corev1.LabelHostname},
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).
+					TopologyAssignmentWithIndex(0, utiltesting.MakeTopologyAssignment([]string{corev1.LabelHostname}).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
 					AssignmentWithIndex(1, corev1.ResourceCPU, "tas-default", "15000m").
 					AssignmentPodCountWithIndex(1, 15).
-					TopologyAssignmentWithIndex(1, &kueue.TopologyAssignment{
-						Levels: []string{corev1.LabelHostname},
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 7,
-								Values: []string{
-									"x1",
-								},
-							},
-							{
-								Count: 8,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).
+					TopologyAssignmentWithIndex(1, utiltesting.MakeTopologyAssignment([]string{corev1.LabelHostname}).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 7).Obj()).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 8).Obj()).
+						Obj()).
 					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"scheduling workload when the node for another admitted workload is deleted": {
@@ -7090,17 +6248,10 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -7113,30 +6264,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"scheduling workload on a tainted node when the toleration is on ResourceFlavor": {
@@ -7157,23 +6293,16 @@ func TestScheduleForTAS(t *testing.T) {
 					Obj(),
 			},
 			topologies: []kueuealpha.Topology{defaultSingleLevelTopology},
-			resourceFlavors: []kueue.ResourceFlavor{{
-				ObjectMeta: metav1.ObjectMeta{
-					Name: "tas-default",
-				},
-				Spec: kueue.ResourceFlavorSpec{
-					NodeLabels: map[string]string{
-						"tas-node": "true",
-					},
-					Tolerations: []corev1.Toleration{
-						{
-							Key:      "example.com/gpu",
-							Operator: corev1.TolerationOpExists,
-						},
-					},
-					TopologyName: ptr.To[kueue.TopologyReference]("tas-single-level"),
-				},
-			}},
+			resourceFlavors: []kueue.ResourceFlavor{
+				*utiltesting.MakeResourceFlavor("tas-default").
+					NodeLabel("tas-node", "true").
+					Toleration(corev1.Toleration{
+						Key:      "example.com/gpu",
+						Operator: corev1.TolerationOpExists,
+					}).
+					TopologyName("tas-single-level").
+					Obj(),
+			},
 			clusterQueues: []kueue.ClusterQueue{
 				*utiltesting.MakeClusterQueue("tas-main").
 					ResourceGroup(
@@ -7196,30 +6325,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1000m").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"TAS workload gets scheduled as trimmed by partial admission": {
@@ -7241,30 +6355,15 @@ func TestScheduleForTAS(t *testing.T) {
 				"default/foo": *utiltesting.MakeAdmission("tas-main", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"workload does not get scheduled as the node capacity (.status.allocatable['pods']) is already used by non-TAS and TAS workloads": {
@@ -7303,17 +6402,10 @@ func TestScheduleForTAS(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "150m").
 							AssignmentPodCount(2).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 2,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 2).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 2).
@@ -7326,12 +6418,9 @@ func TestScheduleForTAS(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s)`).
+					Obj(),
 			},
 		},
 		"workload with zero value request gets scheduled": {
@@ -7353,30 +6442,15 @@ func TestScheduleForTAS(t *testing.T) {
 					Assignment(corev1.ResourceCPU, "tas-default", "0").
 					Assignment(corev1.ResourceMemory, "tas-default", "10Mi").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "foo", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 	}
@@ -7556,15 +6630,7 @@ func TestScheduleForTASPreemption(t *testing.T) {
 			Resource(corev1.ResourceMemory, "50Gi").Obj()).
 		Obj()
 	queues := []kueue.LocalQueue{
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "tas-main",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "tas-main",
-			},
-		},
+		*utiltesting.MakeLocalQueue("tas-main", "default").ClusterQueue("tas-main").Obj(),
 	}
 	cases := map[string]struct {
 		nodes           []corev1.Node
@@ -7617,17 +6683,10 @@ func TestScheduleForTASPreemption(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "5").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"z1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"z1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -7641,18 +6700,12 @@ func TestScheduleForTASPreemption(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "low-priority-admitted"},
-					EventType: "Normal",
-					Reason:    "Preempted",
-					Message:   "Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue",
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: insufficient unused quota for cpu in flavor tas-default, 5 more needed. Pending the preemption of 1 workload(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "low-priority-admitted", "Preempted", "Normal").
+					Message("Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue").
+					Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: insufficient unused quota for cpu in flavor tas-default, 5 more needed. Pending the preemption of 1 workload(s)`).
+					Obj(),
 			},
 		},
 		"only low priority workload is preempted": {
@@ -7678,17 +6731,10 @@ func TestScheduleForTASPreemption(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "5").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -7702,18 +6748,12 @@ func TestScheduleForTASPreemption(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "low-priority-admitted"},
-					EventType: "Normal",
-					Reason:    "Preempted",
-					Message:   "Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue",
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s). Pending the preemption of 1 workload(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "low-priority-admitted", "Preempted", "Normal").
+					Message("Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue").
+					Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s). Pending the preemption of 1 workload(s)`).
+					Obj(),
 			},
 		},
 		"With pods count usage pressure on nodes: only low priority workload is preempted": {
@@ -7743,17 +6783,10 @@ func TestScheduleForTASPreemption(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "5").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -7767,18 +6800,12 @@ func TestScheduleForTASPreemption(t *testing.T) {
 				"tas-main": {"default/high-priority-waiting"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "low-priority-admitted"},
-					EventType: "Normal",
-					Reason:    "Preempted",
-					Message:   "Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue",
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "high-priority-waiting"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s). Pending the preemption of 1 workload(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "low-priority-admitted", "Preempted", "Normal").
+					Message("Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue").
+					Obj(),
+				utiltesting.MakeEventRecord("default", "high-priority-waiting", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s). Pending the preemption of 1 workload(s)`).
+					Obj(),
 			},
 		},
 		"low priority workload is preempted, mid-priority workload survives": {
@@ -7804,17 +6831,10 @@ func TestScheduleForTASPreemption(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "2").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -7829,17 +6849,10 @@ func TestScheduleForTASPreemption(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "2").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -7853,18 +6866,12 @@ func TestScheduleForTASPreemption(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "low-priority-admitted"},
-					EventType: "Normal",
-					Reason:    "Preempted",
-					Message:   "Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue",
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s). Pending the preemption of 1 workload(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "low-priority-admitted", "Preempted", "Normal").
+					Message("Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue").
+					Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" doesn't allow to fit any of 1 pod(s). Pending the preemption of 1 workload(s)`).
+					Obj(),
 			},
 		},
 		"low priority workload is preempted even though there is enough capacity, but fragmented": {
@@ -7892,17 +6899,10 @@ func TestScheduleForTASPreemption(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "4").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -7917,17 +6917,10 @@ func TestScheduleForTASPreemption(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "4").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -7941,18 +6934,12 @@ func TestScheduleForTASPreemption(t *testing.T) {
 				"tas-main": {"default/foo"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "low-priority-admitted"},
-					EventType: "Normal",
-					Reason:    "Preempted",
-					Message:   "Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue",
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "foo"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" allows to fit only 1 out of 2 pod(s). Pending the preemption of 1 workload(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "low-priority-admitted", "Preempted", "Normal").
+					Message("Preempted to accommodate a workload (UID: UNKNOWN, JobUID: UNKNOWN) due to prioritization in the ClusterQueue").
+					Obj(),
+				utiltesting.MakeEventRecord("default", "foo", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" allows to fit only 1 out of 2 pod(s). Pending the preemption of 1 workload(s)`).
+					Obj(),
 			},
 		},
 		"workload with equal priority awaits for other workloads to complete": {
@@ -7989,17 +6976,10 @@ func TestScheduleForTASPreemption(t *testing.T) {
 						utiltesting.MakeAdmission("tas-main", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "4").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -8015,12 +6995,9 @@ func TestScheduleForTASPreemption(t *testing.T) {
 				"tas-main": {"default/mid-priority-waiting"},
 			},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "mid-priority-waiting"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" allows to fit only 1 out of 2 pod(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "mid-priority-waiting", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" allows to fit only 1 out of 2 pod(s)`).
+					Obj(),
 			},
 		},
 	}
@@ -8202,33 +7179,9 @@ func TestScheduleForTASCohorts(t *testing.T) {
 			Resource(corev1.ResourceMemory, "4Gi").Obj()).
 		Obj()
 	queues := []kueue.LocalQueue{
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "tas-lq-a",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "tas-cq-a",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "tas-lq-b",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "tas-cq-b",
-			},
-		},
-		{
-			ObjectMeta: metav1.ObjectMeta{
-				Namespace: "default",
-				Name:      "tas-lq-c",
-			},
-			Spec: kueue.LocalQueueSpec{
-				ClusterQueue: "tas-cq-c",
-			},
-		},
+		*utiltesting.MakeLocalQueue("tas-lq-a", "default").ClusterQueue("tas-cq-a").Obj(),
+		*utiltesting.MakeLocalQueue("tas-lq-b", "default").ClusterQueue("tas-cq-b").Obj(),
+		*utiltesting.MakeLocalQueue("tas-lq-c", "default").ClusterQueue("tas-cq-c").Obj(),
 	}
 	eventIgnoreMessage := cmpopts.IgnoreFields(utiltesting.EventRecord{}, "Message")
 	cases := map[string]struct {
@@ -8270,36 +7223,16 @@ func TestScheduleForTASCohorts(t *testing.T) {
 				"default/a1": *utiltesting.MakeAdmission("tas-cq-a", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "6").
 					AssignmentPodCount(6).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-							{
-								Count: 5,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 5).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "a1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"reclaim within cohort; single borrowing workload gets preempted": {
@@ -8316,17 +7249,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "5").
 							AssignmentPodCount(5).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 5,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 5).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 5).
@@ -8348,16 +7274,8 @@ func TestScheduleForTASCohorts(t *testing.T) {
 			wantPreempted: sets.New[workload.Reference]("default/a1-admitted"),
 			eventCmpOpts:  cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1-admitted"},
-					Reason:    "Preempted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
+				utiltesting.MakeEventRecord("default", "a1-admitted", "Preempted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"reclaim within cohort; single workload is preempted out three candidates": {
@@ -8376,17 +7294,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "5").
 							AssignmentPodCount(5).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 5,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 5).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 5).
@@ -8401,17 +7312,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "2").
 							AssignmentPodCount(2).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 2,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 2).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 2).
@@ -8426,17 +7330,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -8459,16 +7356,8 @@ func TestScheduleForTASCohorts(t *testing.T) {
 			wantPreempted: sets.New[workload.Reference]("default/a1-admitted"),
 			eventCmpOpts:  cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1-admitted"},
-					Reason:    "Preempted",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
+				utiltesting.MakeEventRecord("default", "a1-admitted", "Preempted", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
 			},
 		},
 		"reclaim within cohort; preempting with partial admission": {
@@ -8488,17 +7377,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "5").
 							AssignmentPodCount(5).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 5,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 5).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 4).
@@ -8513,17 +7395,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "3").
 							AssignmentPodCount(3).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 3,
-										Values: []string{
-											"x1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 3).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 3).
@@ -8548,16 +7423,8 @@ func TestScheduleForTASCohorts(t *testing.T) {
 			wantPreempted: sets.New[workload.Reference]("default/a2-admitted"),
 			eventCmpOpts:  cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a2-admitted"},
-					Reason:    "Preempted",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
+				utiltesting.MakeEventRecord("default", "a2-admitted", "Preempted", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
 			},
 		},
 		"reclaim within cohort; capacity reserved by preempting workload does not allow to schedule last workload": {
@@ -8576,23 +7443,11 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "5").
 							AssignmentPodCount(5).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 3,
-										Values: []string{
-											"x1",
-										},
-									},
-									{
-										Count: 2,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 3).Obj()).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 2).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 5).
@@ -8607,17 +7462,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -8632,17 +7480,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "1").
 							AssignmentPodCount(1).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 1,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 1).
@@ -8674,26 +7515,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 			wantPreempted: sets.New[workload.Reference]("default/a2-admitted", "default/a3-admitted"),
 			eventCmpOpts:  cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "c1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a2-admitted"},
-					Reason:    "Preempted",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a3-admitted"},
-					Reason:    "Preempted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
+				utiltesting.MakeEventRecord("default", "c1", "Pending", corev1.EventTypeWarning).Obj(),
+				utiltesting.MakeEventRecord("default", "a2-admitted", "Preempted", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a3-admitted", "Preempted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"two small workloads considered; both get scheduled on different nodes": {
@@ -8723,54 +7548,24 @@ func TestScheduleForTASCohorts(t *testing.T) {
 				"default/a1": *utiltesting.MakeAdmission("tas-cq-a", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "5").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 				"default/b1": *utiltesting.MakeAdmission("tas-cq-b", "one").
 					Assignment(corev1.ResourceMemory, "tas-default", "5").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "b1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "b1", "Admitted", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"two small workloads considered; both get scheduled on the same node": {
@@ -8800,54 +7595,24 @@ func TestScheduleForTASCohorts(t *testing.T) {
 				"default/a1": *utiltesting.MakeAdmission("tas-cq-a", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 				"default/b1": *utiltesting.MakeAdmission("tas-cq-b", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "2").
 					AssignmentPodCount(2).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 2,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 2).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "b1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "b1", "Admitted", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"two small workloads considered; there is only space for one of them on the initial node": {
@@ -8877,38 +7642,19 @@ func TestScheduleForTASCohorts(t *testing.T) {
 				"default/a1": *utiltesting.MakeAdmission("tas-cq-a", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "1").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			wantLeft: map[kueue.ClusterQueueReference][]workload.Reference{
 				"tas-cq-b": {"default/b1"},
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"two workloads considered; there is enough space only for the first": {
@@ -8941,35 +7687,16 @@ func TestScheduleForTASCohorts(t *testing.T) {
 				"default/a1": *utiltesting.MakeAdmission("tas-cq-a", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "5").
 					AssignmentPodCount(5).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 5,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 5).Obj()).
+						Obj()).
+					Obj(),
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "Admitted", corev1.EventTypeNormal).Obj(),
 			},
 		},
 		"two workloads considered; both overlapping in the initial flavor assignment": {
@@ -9001,38 +7728,19 @@ func TestScheduleForTASCohorts(t *testing.T) {
 				"default/a1": *utiltesting.MakeAdmission("tas-cq-a", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "2").
 					AssignmentPodCount(1).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 1,
-								Values: []string{
-									"x1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"x1"}, 1).Obj()).
+						Obj()).
+					Obj(),
 			},
 			wantLeft: map[kueue.ClusterQueueReference][]workload.Reference{
 				"tas-cq-b": {"default/b1"},
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
+				utiltesting.MakeEventRecord("default", "a1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a1", "Admitted", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
 			},
 		},
 		"preempting workload with targets reserves capacity so that lower priority workload cannot use it": {
@@ -9057,17 +7765,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "2").
 							AssignmentPodCount(2).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 2,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 2).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 2).
@@ -9099,21 +7800,9 @@ func TestScheduleForTASCohorts(t *testing.T) {
 			wantPreempted: sets.New[workload.Reference]("default/a1-admitted"),
 			eventCmpOpts:  cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a2"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a1-admitted"},
-					Reason:    "Preempted",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
+				utiltesting.MakeEventRecord("default", "a2", "Pending", corev1.EventTypeWarning).Obj(),
+				utiltesting.MakeEventRecord("default", "a1-admitted", "Preempted", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
 			},
 		},
 		"preempting workload without targets reserves capacity so that lower priority workload cannot use it": {
@@ -9138,17 +7827,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "2").
 							AssignmentPodCount(2).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 2,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 2).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 2).
@@ -9181,16 +7863,8 @@ func TestScheduleForTASCohorts(t *testing.T) {
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a2"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Pending",
-					EventType: corev1.EventTypeWarning,
-				},
+				utiltesting.MakeEventRecord("default", "a2", "Pending", corev1.EventTypeWarning).Obj(),
+				utiltesting.MakeEventRecord("default", "b1", "Pending", corev1.EventTypeWarning).Obj(),
 			},
 		},
 		"preempting workload without targets doesn't reserve capacity when it can always reclaim": {
@@ -9215,17 +7889,10 @@ func TestScheduleForTASCohorts(t *testing.T) {
 						utiltesting.MakeAdmission("tas-cq-a", "one").
 							Assignment(corev1.ResourceCPU, "tas-default", "2").
 							AssignmentPodCount(2).
-							TopologyAssignment(&kueue.TopologyAssignment{
-								Levels: utiltas.Levels(&defaultSingleLevelTopology),
-								Domains: []kueue.TopologyDomainAssignment{
-									{
-										Count: 2,
-										Values: []string{
-											"y1",
-										},
-									},
-								},
-							}).Obj(),
+							TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+								Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 2).Obj()).
+								Obj()).
+							Obj(),
 					).
 					Admitted(true).
 					PodSets(*utiltesting.MakePodSet("one", 2).
@@ -9255,38 +7922,20 @@ func TestScheduleForTASCohorts(t *testing.T) {
 			},
 			eventCmpOpts: cmp.Options{eventIgnoreMessage},
 			wantEvents: []utiltesting.EventRecord{
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "QuotaReserved",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "b1"},
-					Reason:    "Admitted",
-					EventType: corev1.EventTypeNormal,
-				},
-				{
-					Key:       types.NamespacedName{Namespace: "default", Name: "a2"},
-					EventType: "Warning",
-					Reason:    "Pending",
-					Message:   `couldn't assign flavors to pod set one: topology "tas-single-level" allows to fit only 3 out of 4 pod(s)`,
-				},
+				utiltesting.MakeEventRecord("default", "b1", "QuotaReserved", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "b1", "Admitted", corev1.EventTypeNormal).Obj(),
+				utiltesting.MakeEventRecord("default", "a2", "Pending", "Warning").
+					Message(`couldn't assign flavors to pod set one: topology "tas-single-level" allows to fit only 3 out of 4 pod(s)`).
+					Obj(),
 			},
 			wantNewAssignments: map[workload.Reference]kueue.Admission{
 				"default/b1": *utiltesting.MakeAdmission("tas-cq-b", "one").
 					Assignment(corev1.ResourceCPU, "tas-default", "3").
 					AssignmentPodCount(3).
-					TopologyAssignment(&kueue.TopologyAssignment{
-						Levels: utiltas.Levels(&defaultSingleLevelTopology),
-						Domains: []kueue.TopologyDomainAssignment{
-							{
-								Count: 3,
-								Values: []string{
-									"y1",
-								},
-							},
-						},
-					}).Obj(),
+					TopologyAssignment(utiltesting.MakeTopologyAssignment(utiltas.Levels(&defaultSingleLevelTopology)).
+						Domain(utiltesting.MakeTopologyDomainAssignment([]string{"y1"}, 3).Obj()).
+						Obj()).
+					Obj(),
 			},
 		},
 	}
diff --git a/pkg/util/testing/wrappers.go b/pkg/util/testing/wrappers.go
index 7536e1897..3b14765a5 100644
--- a/pkg/util/testing/wrappers.go
+++ b/pkg/util/testing/wrappers.go
@@ -1675,3 +1675,124 @@ func AppendOwnerReference(obj client.Object, gvk schema.GroupVersionKind, name,
 		BlockOwnerDeletion: blockDeletion,
 	}))
 }
+
+type EventRecordWrapper struct {
+	EventRecord
+}
+
+func MakeEventRecord(namespace, name, reason, eventType string) *EventRecordWrapper {
+	return &EventRecordWrapper{
+		EventRecord: EventRecord{
+			Key:       types.NamespacedName{Namespace: namespace, Name: name},
+			Reason:    reason,
+			EventType: eventType,
+		},
+	}
+}
+
+func (e *EventRecordWrapper) Message(message string) *EventRecordWrapper {
+	e.EventRecord.Message = message
+	return e
+}
+
+func (e *EventRecordWrapper) Obj() EventRecord {
+	return e.EventRecord
+}
+
+type TopologyDomainAssignmentWrapper struct {
+	kueue.TopologyDomainAssignment
+}
+
+func MakeTopologyDomainAssignment(values []string, count int32) *TopologyDomainAssignmentWrapper {
+	return &TopologyDomainAssignmentWrapper{
+		TopologyDomainAssignment: kueue.TopologyDomainAssignment{
+			Values: values,
+			Count:  count,
+		},
+	}
+}
+
+func (t *TopologyDomainAssignmentWrapper) Obj() kueue.TopologyDomainAssignment {
+	return t.TopologyDomainAssignment
+}
+
+type TopologyAssignmentWrapper struct {
+	kueue.TopologyAssignment
+}
+
+func MakeTopologyAssignment(levels []string) *TopologyAssignmentWrapper {
+	return &TopologyAssignmentWrapper{
+		TopologyAssignment: kueue.TopologyAssignment{
+			Levels: levels,
+		},
+	}
+}
+
+func (t *TopologyAssignmentWrapper) Levels(levels ...string) *TopologyAssignmentWrapper {
+	t.TopologyAssignment.Levels = levels
+	return t
+}
+
+func (t *TopologyAssignmentWrapper) Domains(domains ...kueue.TopologyDomainAssignment) *TopologyAssignmentWrapper {
+	t.TopologyAssignment.Domains = domains
+	return t
+}
+
+func (t *TopologyAssignmentWrapper) Domain(domain kueue.TopologyDomainAssignment) *TopologyAssignmentWrapper {
+	t.TopologyAssignment.Domains = append(t.TopologyAssignment.Domains, domain)
+	return t
+}
+
+func (t *TopologyAssignmentWrapper) Obj() *kueue.TopologyAssignment {
+	return &t.TopologyAssignment
+}
+
+type PodSetAssignmentWrapper struct {
+	kueue.PodSetAssignment
+}
+
+func MakePodSetAssignment(name kueue.PodSetReference) *PodSetAssignmentWrapper {
+	return &PodSetAssignmentWrapper{
+		PodSetAssignment: kueue.PodSetAssignment{
+			Name:          name,
+			Flavors:       make(map[corev1.ResourceName]kueue.ResourceFlavorReference),
+			ResourceUsage: make(corev1.ResourceList),
+			Count:         ptr.To[int32](1),
+		},
+	}
+}
+
+func (p *PodSetAssignmentWrapper) Obj() kueue.PodSetAssignment {
+	return p.PodSetAssignment
+}
+
+func (p *PodSetAssignmentWrapper) Flavor(resource corev1.ResourceName, flavor kueue.ResourceFlavorReference) *PodSetAssignmentWrapper {
+	if p.Flavors == nil {
+		p.Flavors = make(map[corev1.ResourceName]kueue.ResourceFlavorReference)
+	}
+	p.Flavors[resource] = flavor
+	return p
+}
+
+func (p *PodSetAssignmentWrapper) ResourceUsage(resourceName corev1.ResourceName, quantity string) *PodSetAssignmentWrapper {
+	if p.PodSetAssignment.ResourceUsage == nil {
+		p.PodSetAssignment.ResourceUsage = make(corev1.ResourceList)
+	}
+	p.PodSetAssignment.ResourceUsage[resourceName] = resource.MustParse(quantity)
+	return p
+}
+
+func (p *PodSetAssignmentWrapper) Count(count int32) *PodSetAssignmentWrapper {
+	p.PodSetAssignment.Count = ptr.To(count)
+	return p
+}
+
+func (p *PodSetAssignmentWrapper) TopologyAssignment(ta *kueue.TopologyAssignment) *PodSetAssignmentWrapper {
+	p.PodSetAssignment.TopologyAssignment = ta
+	return p
+}
+
+func (p *PodSetAssignmentWrapper) DelayedTopologyRequest(state kueue.DelayedTopologyRequestState) *PodSetAssignmentWrapper {
+	p.PodSetAssignment.DelayedTopologyRequest = ptr.To(state)
+	return p
+}
diff --git a/test/OWNERS b/test/OWNERS
index d6418cdd7..497236848 100644
--- a/test/OWNERS
+++ b/test/OWNERS
@@ -1,8 +1,5 @@
 # See the OWNERS docs at https://go.k8s.io/owners
 
-approvers:
-- gabesaba
-
 reviewers:
 - kannon92
 
diff --git a/test/integration/singlecluster/controller/admissionchecks/provisioning/provisioning_test.go b/test/integration/singlecluster/controller/admissionchecks/provisioning/provisioning_test.go
index 39345e14f..fcb9e7900 100644
--- a/test/integration/singlecluster/controller/admissionchecks/provisioning/provisioning_test.go
+++ b/test/integration/singlecluster/controller/admissionchecks/provisioning/provisioning_test.go
@@ -299,15 +299,15 @@ var _ = ginkgo.Describe("Provisioning", ginkgo.Ordered, ginkgo.ContinueOnFailure
 						{
 							Name: "ps1",
 							Annotations: map[string]string{
-								provisioning.ConsumesAnnotationKey:  provReqKey.Name,
-								provisioning.ClassNameAnnotationKey: prc.Spec.ProvisioningClassName,
+								autoscaling.ProvisioningRequestPodAnnotationKey: provReqKey.Name,
+								autoscaling.ProvisioningClassPodAnnotationKey:   prc.Spec.ProvisioningClassName,
 							},
 						},
 						{
 							Name: "ps2",
 							Annotations: map[string]string{
-								provisioning.ConsumesAnnotationKey:  provReqKey.Name,
-								provisioning.ClassNameAnnotationKey: prc.Spec.ProvisioningClassName,
+								autoscaling.ProvisioningRequestPodAnnotationKey: provReqKey.Name,
+								autoscaling.ProvisioningClassPodAnnotationKey:   prc.Spec.ProvisioningClassName,
 							},
 						},
 					}))
@@ -740,15 +740,15 @@ var _ = ginkgo.Describe("Provisioning", ginkgo.Ordered, ginkgo.ContinueOnFailure
 						{
 							Name: "ps1",
 							Annotations: map[string]string{
-								provisioning.ConsumesAnnotationKey:  provReqKey.Name,
-								provisioning.ClassNameAnnotationKey: prc.Spec.ProvisioningClassName,
+								autoscaling.ProvisioningRequestPodAnnotationKey: provReqKey.Name,
+								autoscaling.ProvisioningClassPodAnnotationKey:   prc.Spec.ProvisioningClassName,
 							},
 						},
 						{
 							Name: "ps2",
 							Annotations: map[string]string{
-								provisioning.ConsumesAnnotationKey:  provReqKey.Name,
-								provisioning.ClassNameAnnotationKey: prc.Spec.ProvisioningClassName,
+								autoscaling.ProvisioningRequestPodAnnotationKey: provReqKey.Name,
+								autoscaling.ProvisioningClassPodAnnotationKey:   prc.Spec.ProvisioningClassName,
 							},
 						},
 					}))