# RunJudgeContract

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.testing.contracts.judges.runjudgecontract/
> Summary: RunJudgeContract: Behavior tests for an IRunJudge implementation.

<div class="api-provenance">Namespace Tracon.Testing.Contracts.Judges · Assembly <code>Tracon.Testing.Contracts.Xunit.dll</code></div>

Behavior tests for an [IRunJudge](/api/tracon.irunjudge/) implementation.

```csharp
public abstract class RunJudgeContract : IAsyncLifetime, IAsyncDisposable
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.testing.contracts.judges.runjudgecontract/">RunJudgeContract</a></dd><dt>Implements</dt><dd>IAsyncLifetime, <a href="https://learn.microsoft.com/dotnet/api/system.iasyncdisposable">IAsyncDisposable</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Constructors

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract__ctor"></a> RunJudgeContract\(\)

```csharp
protected RunJudgeContract()
```

## Properties

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_ConcurrentCallCount"></a> ConcurrentCallCount

Gets the number of calls used by the deterministic concurrency probe.

```csharp
protected virtual int ConcurrentCallCount { get; }
```

#### Property Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_Judge"></a> Judge

The judge under test.

```csharp
protected IRunJudge Judge { get; }
```

#### Property Value

 [IRunJudge](/api/tracon.irunjudge/)

## Methods

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_A_pre_cancelled_token_is_honored"></a> A\_pre\_cancelled\_token\_is\_honored\(\)

```csharp
[Fact]
public Task A_pre_cancelled_token_is_honored()
```

#### Returns

 [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_Concurrent_calls_start_together_and_complete"></a> Concurrent\_calls\_start\_together\_and\_complete\(\)

```csharp
[Fact]
public Task Concurrent_calls_start_together_and_complete()
```

#### Returns

 [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_CreateContext"></a> CreateContext\(\)

Creates a normal completed-run context.

```csharp
protected virtual RunJudgeContext CreateContext()
```

#### Returns

 [RunJudgeContext](/api/tracon.runjudgecontext/)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_CreateJudgeAsync"></a> CreateJudgeAsync\(\)

Creates the judge under test.

```csharp
protected abstract ValueTask<IRunJudge> CreateJudgeAsync()
```

#### Returns

 [ValueTask](https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask\-1)<[IRunJudge](/api/tracon.irunjudge/)\>

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_DisposeAsync"></a> DisposeAsync\(\)

```csharp
public ValueTask DisposeAsync()
```

#### Returns

 [ValueTask](https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_Every_score_in_a_judgment_can_be_stored"></a> Every\_score\_in\_a\_judgment\_can\_be\_stored\(\)

```csharp
[Fact]
public Task Every_score_in_a_judgment_can_be_stored()
```

#### Returns

 [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_InitializeAsync"></a> InitializeAsync\(\)

Called immediately after the class has been created, before it is used.

```csharp
public ValueTask InitializeAsync()
```

#### Returns

 [ValueTask](https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_Name_is_a_stable_valid_identifier_across_calls"></a> Name\_is\_a\_stable\_valid\_identifier\_across\_calls\(\)

```csharp
[Fact]
public Task Name_is_a_stable_valid_identifier_across_calls()
```

#### Returns

 [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_Repeated_calls_with_the_same_context_complete"></a> Repeated\_calls\_with\_the\_same\_context\_complete\(\)

```csharp
[Fact]
public Task Repeated_calls_with_the_same_context_complete()
```

#### Returns

 [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_ShouldBeStorable_Tracon_RunJudgment_"></a> ShouldBeStorable\(RunJudgment\)

Asserts that every score in a judgment satisfies the stored invariants.

```csharp
protected static void ShouldBeStorable(RunJudgment judgment)
```

#### Parameters

`judgment` [RunJudgment](/api/tracon.runjudgment/)

The judgment under test.

#### Remarks

An empty judgment passes: it says the judge reached no decision, and
nothing is written. What must never happen is a judgment that Tracon
then refuses to store — a repeated name, an out-of-range value, a value
shape that does not match its kind, or an over-long version.

### <a id="Tracon_Testing_Contracts_Judges_RunJudgeContract_Whitespace_output_and_empty_tools_do_not_throw"></a> Whitespace\_output\_and\_empty\_tools\_do\_not\_throw\(\)

```csharp
[Fact]
public Task Whitespace_output_and_empty_tools_do_not_throw()
```

#### Returns

 [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)
