Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,20 @@ public Task QueryInt32MillisecondsArray() => Test(async (host) =>
Assert.AreEqual(204, result.GetRawResponse().Status);
});

[SpectorTest]
public Task LossyInt32Seconds() => Test(async (host) =>
{
var result = await new DurationClient(host, null).GetLossyClient().IntSecondsAsync(TimeSpan.FromSeconds(36.25));
Assert.AreEqual(204, result.GetRawResponse().Status);
});

[SpectorTest]
public Task LossyInt32Milliseconds() => Test(async (host) =>
{
var result = await new DurationClient(host, null).GetLossyClient().IntMillisecondsAsync(TimeSpan.FromMilliseconds(36250.25));
Assert.AreEqual(204, result.GetRawResponse().Status);
});

[SpectorTest]
public Task HeaderInt32Milliseconds() => Test(async (host) =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,16 @@ public Task QueryExpansionExplodeRecord() => Test(async (host) =>
Assert.AreEqual(204, response.GetRawResponse().Status);
});

[SpectorTest]
public Task QueryExpansionExplodeModel() => Test(async (host) =>
{
var response = await new RoutesClient(host, null).GetQueryParametersClient()
.GetQueryParametersQueryExpansionClient()
.GetQueryParametersQueryExpansionExplodeClient()
.ModelAsync(new ExpandParameters("status", "active"));
Assert.AreEqual(204, response.GetRawResponse().Status);
});

[SpectorTest]
[Ignore("https://github.com/microsoft/typespec/issues/5139")]
public Task QueryContinuationPrimitive() => Test(async (host) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,7 @@ public partial class DurationClient
public virtual Property GetPropertyClient() => throw null;

public virtual Header GetHeaderClient() => throw null;

public virtual Lossy GetLossyClient() => throw null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// <auto-generated/>

#nullable disable

using System;
using System.ClientModel;
using System.ClientModel.Primitives;
using System.Threading;
using System.Threading.Tasks;

namespace Encode.Duration
{
public partial class Lossy
{
protected Lossy() => throw null;

internal Lossy(ClientPipeline pipeline, Uri endpoint) => throw null;

public ClientPipeline Pipeline => throw null;

public virtual ClientResult IntSeconds(TimeSpan input, RequestOptions options) => throw null;

public virtual Task<ClientResult> IntSecondsAsync(TimeSpan input, RequestOptions options) => throw null;

public virtual ClientResult IntSeconds(TimeSpan input, CancellationToken cancellationToken = default) => throw null;

public virtual Task<ClientResult> IntSecondsAsync(TimeSpan input, CancellationToken cancellationToken = default) => throw null;

public virtual ClientResult IntMilliseconds(TimeSpan input, RequestOptions options) => throw null;

public virtual Task<ClientResult> IntMillisecondsAsync(TimeSpan input, RequestOptions options) => throw null;

public virtual ClientResult IntMilliseconds(TimeSpan input, CancellationToken cancellationToken = default) => throw null;

public virtual Task<ClientResult> IntMillisecondsAsync(TimeSpan input, CancellationToken cancellationToken = default) => throw null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7138,6 +7138,271 @@
"$ref": "119"
},
"isMultiServiceClient": false
},
{
"$id": "475",
"kind": "client",
"name": "Lossy",
"isExactName": false,
"namespace": "Encode.Duration",
"doc": "Lossy encode scenarios.\n\nThese scenarios cover the case where the source `duration` carries more precision than the\ntarget encoding can represent (e.g. a sub-second value encoded as integer seconds). The client\nmust still serialize the value using the target number type (an integer), discarding the extra\nprecision, rather than emitting a floating point number. This is distinct from arbitrary type\nmismatches, which are already covered by the round-trip scenarios above.",
"methods": [
{
"$id": "476",
"kind": "basic",
"name": "intSeconds",
"isExactName": false,
"accessibility": "public",
"apiVersions": [],
"operation": {
"$id": "477",
"name": "intSeconds",
"isExactName": false,
"resourceName": "Lossy",
"accessibility": "public",
"parameters": [
{
"$id": "478",
"kind": "query",
"name": "input",
"serializedName": "input",
"type": {
"$id": "479",
"kind": "duration",
"name": "duration",
"encode": "seconds",
"wireType": {
"$id": "480",
"kind": "int32",
"name": "int32",
"crossLanguageDefinitionId": "TypeSpec.int32",
"decorators": []
},
"crossLanguageDefinitionId": "TypeSpec.duration",
"decorators": []
},
"isApiVersion": false,
"explode": false,
"optional": false,
"scope": "Method",
"decorators": [],
"crossLanguageDefinitionId": "Encode.Duration.Lossy.intSeconds.input",
"readOnly": false,
"methodParameterSegments": [
{
"$id": "481",
"kind": "method",
"name": "input",
"serializedName": "input",
"type": {
"$id": "482",
"kind": "duration",
"name": "duration",
"encode": "seconds",
"wireType": {
"$id": "483",
"kind": "int32",
"name": "int32",
"crossLanguageDefinitionId": "TypeSpec.int32",
"decorators": []
},
"crossLanguageDefinitionId": "TypeSpec.duration",
"decorators": []
},
"location": "Query",
"isApiVersion": false,
"optional": false,
"scope": "Method",
"crossLanguageDefinitionId": "Encode.Duration.Lossy.intSeconds.input",
"readOnly": false,
"access": "public",
"decorators": [],
"isExactName": false
}
],
"isExactName": false
}
],
"responses": [
{
"statusCodes": [
204
],
"headers": [],
"isErrorResponse": false,
"serializationOptions": {}
}
],
"httpMethod": "GET",
"uri": "{endpoint}",
"path": "/encode/duration/lossy/int32-seconds",
"bufferResponse": true,
"generateProtocolMethod": true,
"generateConvenienceMethod": true,
"crossLanguageDefinitionId": "Encode.Duration.Lossy.intSeconds",
"decorators": [],
"namespace": "Encode.Duration"
},
"parameters": [
{
"$ref": "481"
}
],
"response": {},
"isOverride": false,
"generateConvenient": true,
"generateProtocol": true,
"crossLanguageDefinitionId": "Encode.Duration.Lossy.intSeconds"
},
{
"$id": "484",
"kind": "basic",
"name": "intMilliseconds",
"isExactName": false,
"accessibility": "public",
"apiVersions": [],
"operation": {
"$id": "485",
"name": "intMilliseconds",
"isExactName": false,
"resourceName": "Lossy",
"accessibility": "public",
"parameters": [
{
"$id": "486",
"kind": "query",
"name": "input",
"serializedName": "input",
"type": {
"$id": "487",
"kind": "duration",
"name": "duration",
"encode": "milliseconds",
"wireType": {
"$id": "488",
"kind": "int32",
"name": "int32",
"crossLanguageDefinitionId": "TypeSpec.int32",
"decorators": []
},
"crossLanguageDefinitionId": "TypeSpec.duration",
"decorators": []
},
"isApiVersion": false,
"explode": false,
"optional": false,
"scope": "Method",
"decorators": [],
"crossLanguageDefinitionId": "Encode.Duration.Lossy.intMilliseconds.input",
"readOnly": false,
"methodParameterSegments": [
{
"$id": "489",
"kind": "method",
"name": "input",
"serializedName": "input",
"type": {
"$id": "490",
"kind": "duration",
"name": "duration",
"encode": "milliseconds",
"wireType": {
"$id": "491",
"kind": "int32",
"name": "int32",
"crossLanguageDefinitionId": "TypeSpec.int32",
"decorators": []
},
"crossLanguageDefinitionId": "TypeSpec.duration",
"decorators": []
},
"location": "Query",
"isApiVersion": false,
"optional": false,
"scope": "Method",
"crossLanguageDefinitionId": "Encode.Duration.Lossy.intMilliseconds.input",
"readOnly": false,
"access": "public",
"decorators": [],
"isExactName": false
}
],
"isExactName": false
}
],
"responses": [
{
"statusCodes": [
204
],
"headers": [],
"isErrorResponse": false,
"serializationOptions": {}
}
],
"httpMethod": "GET",
"uri": "{endpoint}",
"path": "/encode/duration/lossy/int32-milliseconds",
"bufferResponse": true,
"generateProtocolMethod": true,
"generateConvenienceMethod": true,
"crossLanguageDefinitionId": "Encode.Duration.Lossy.intMilliseconds",
"decorators": [],
"namespace": "Encode.Duration"
},
"parameters": [
{
"$ref": "489"
}
],
"response": {},
"isOverride": false,
"generateConvenient": true,
"generateProtocol": true,
"crossLanguageDefinitionId": "Encode.Duration.Lossy.intMilliseconds"
}
],
"parameters": [
{
"$id": "492",
"kind": "endpoint",
"name": "endpoint",
"serializedName": "endpoint",
"doc": "Service host",
"type": {
"$id": "493",
"kind": "url",
"name": "endpoint",
"crossLanguageDefinitionId": "TypeSpec.url"
},
"isApiVersion": false,
"optional": false,
"scope": "Client",
"isEndpoint": true,
"defaultValue": {
"type": {
"$id": "494",
"kind": "string",
"name": "string",
"crossLanguageDefinitionId": "TypeSpec.string"
},
"value": "http://localhost:3000"
},
"serverUrlTemplate": "{endpoint}",
"skipUrlEncoding": false,
"readOnly": false,
"crossLanguageDefinitionId": "Encode.Duration.Lossy.endpoint",
"isExactName": false
}
],
"initializedBy": 0,
"decorators": [],
"crossLanguageDefinitionId": "Encode.Duration.Lossy",
"apiVersions": [],
"parent": {
"$ref": "119"
},
"isMultiServiceClient": false
}
],
"isMultiServiceClient": false
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// <auto-generated/>

#nullable disable

using System;
using System.ClientModel;
using System.ClientModel.Primitives;
using System.Text.Json;

namespace Routes
{
public partial class ExpandParameters : IJsonModel<ExpandParameters>
{
internal ExpandParameters() => throw null;

protected virtual ExpandParameters PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) => throw null;

protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) => throw null;

BinaryData IPersistableModel<ExpandParameters>.Write(ModelReaderWriterOptions options) => throw null;

ExpandParameters IPersistableModel<ExpandParameters>.Create(BinaryData data, ModelReaderWriterOptions options) => throw null;

string IPersistableModel<ExpandParameters>.GetFormatFromOptions(ModelReaderWriterOptions options) => throw null;

public static implicit operator BinaryContent(ExpandParameters expandParameters) => throw null;

void IJsonModel<ExpandParameters>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => throw null;

protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) => throw null;

ExpandParameters IJsonModel<ExpandParameters>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => throw null;

protected virtual ExpandParameters JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => throw null;
}
}
Loading
Loading