Here are the examples of the csharp api Xunit.Assert.IsType(object) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
652 Examples
19
View Source File : PropertyAssert.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
public static void Roundtrips<TInstance, TProperty>(TInstance instance, Expression<Func<TInstance, TProperty?>> propertyExpression, PropertySetter propertySetter, TProperty? defaultValue = null,
TProperty? minLegalValue = null, TProperty? illegalLowerValue = null,
TProperty? maxLegalValue = null, TProperty? illegalUpperValue = null,
TProperty? roundtripValue = null)
where TInstance : clreplaced
where TProperty : struct
{
PropertyInfo property = GetPropertyInfo(propertyExpression);
Func<TInstance, TProperty?> getter = (obj) => (TProperty?)property.GetValue(obj, index: null);
Action<TInstance, TProperty?> setter = (obj, value) => property.SetValue(obj, value, index: null);
replacedert.Equal(defaultValue, getter(instance));
switch (propertySetter)
{
case PropertySetter.NullRoundtrips:
TestRoundtrip(instance, getter, setter, roundtripValue: null);
break;
case PropertySetter.NullSetsDefault:
TestRoundtrip(instance, getter, setter, roundtripValue: defaultValue);
break;
default:
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Invalid '{0}' value", typeof(PropertySetter).Name));
}
if (roundtripValue.HasValue)
{
TestRoundtrip(instance, getter, setter, roundtripValue.Value);
}
if (minLegalValue.HasValue)
{
TestRoundtrip(instance, getter, setter, minLegalValue.Value);
}
if (maxLegalValue.HasValue)
{
TestRoundtrip(instance, getter, setter, maxLegalValue.Value);
}
if (illegalLowerValue.HasValue)
{
TargetInvocationException ex = replacedert.Throws<TargetInvocationException>(() => setter(instance, illegalLowerValue.Value));
replacedert.IsType<ArgumentOutOfRangeException>(ex.InnerException);
ArgumentOutOfRangeException rex = ex.InnerException as ArgumentOutOfRangeException;
replacedert.Equal(illegalLowerValue.Value, rex.ActualValue);
}
if (illegalUpperValue.HasValue)
{
TargetInvocationException ex = replacedert.Throws<TargetInvocationException>(() => setter(instance, illegalUpperValue.Value));
replacedert.IsType<ArgumentOutOfRangeException>(ex.InnerException);
ArgumentOutOfRangeException rex = ex.InnerException as ArgumentOutOfRangeException;
replacedert.Equal(illegalUpperValue.Value, rex.ActualValue);
}
}
19
View Source File : PollyHttpClientBuilderExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public async Task AddPolicyHandler_Policy_AddsPolicyHandler()
{
var serviceCollection = new ServiceCollection();
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com", c => c.BaseAddress = new Uri("http://example.com"))
.AddPolicyHandler(RetryPolicy)
.ConfigureHttpMessageHandlerBuilder(b =>
{
b.PrimaryHandler = PrimaryHandler;
builder = b;
});
var services = serviceCollection.BuildServiceProvider();
var factory = services.GetRequiredService<IHttpClientFactory>();
// Act2
var client = factory.CreateClient("example.com");
// replacedert
replacedert.NotNull(client);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.IsType<PolicyHttpMessageHandler>(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
// Act 3
var response = await client.SendAsync(new HttpRequestMessage());
// replacedert
replacedert.Equal(HttpStatusCode.Created, response.StatusCode);
}
19
View Source File : PollyHttpClientBuilderExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public async Task AddPolicyHandler_PolicySelector_AddsPolicyHandler()
{
var serviceCollection = new ServiceCollection();
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com", c => c.BaseAddress = new Uri("http://example.com"))
.AddPolicyHandler((req) => req.RequestUri.AbsolutePath == "/" ? RetryPolicy : NoOpPolicy)
.ConfigureHttpMessageHandlerBuilder(b =>
{
b.PrimaryHandler = PrimaryHandler;
builder = b;
});
var services = serviceCollection.BuildServiceProvider();
var factory = services.GetRequiredService<IHttpClientFactory>();
// Act2
var client = factory.CreateClient("example.com");
// replacedert
replacedert.NotNull(client);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.IsType<PolicyHttpMessageHandler>(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
// Act 3
var response = await client.SendAsync(new HttpRequestMessage());
// replacedert
replacedert.Equal(HttpStatusCode.Created, response.StatusCode);
// Act 4
await replacedert.ThrowsAsync<OverflowException>(() => client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "/throw")));
}
19
View Source File : PollyHttpClientBuilderExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public async Task AddPolicyHandler_PolicySelectorWithServices_AddsPolicyHandler()
{
var serviceCollection = new ServiceCollection();
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com", c => c.BaseAddress = new Uri("http://example.com"))
.AddPolicyHandler((req) => req.RequestUri.AbsolutePath == "/" ? RetryPolicy : NoOpPolicy)
.ConfigureHttpMessageHandlerBuilder(b =>
{
b.PrimaryHandler = PrimaryHandler;
builder = b;
});
var services = serviceCollection.BuildServiceProvider();
var factory = services.GetRequiredService<IHttpClientFactory>();
// Act2
var client = factory.CreateClient("example.com");
// replacedert
replacedert.NotNull(client);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.IsType<PolicyHttpMessageHandler>(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
// Act 3
var response = await client.SendAsync(new HttpRequestMessage());
// replacedert
replacedert.Equal(HttpStatusCode.Created, response.StatusCode);
// Act 4
await replacedert.ThrowsAsync<OverflowException>(() => client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "/throw")));
}
19
View Source File : PollyHttpClientBuilderExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public async Task AddPolicyHandlerFromRegistry_Name_AddsPolicyHandler()
{
var serviceCollection = new ServiceCollection();
var registry = serviceCollection.AddPolicyRegistry();
registry.Add<IAsyncPolicy<HttpResponseMessage>>("retry", RetryPolicy);
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com", c => c.BaseAddress = new Uri("http://example.com"))
.AddPolicyHandlerFromRegistry("retry")
.ConfigureHttpMessageHandlerBuilder(b =>
{
b.PrimaryHandler = PrimaryHandler;
builder = b;
});
var services = serviceCollection.BuildServiceProvider();
var factory = services.GetRequiredService<IHttpClientFactory>();
// Act2
var client = factory.CreateClient("example.com");
// replacedert
replacedert.NotNull(client);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.IsType<PolicyHttpMessageHandler>(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
// Act 3
var response = await client.SendAsync(new HttpRequestMessage());
// replacedert
replacedert.Equal(HttpStatusCode.Created, response.StatusCode);
}
19
View Source File : DependencyScopeExtensionsTests.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public void GetReceiverManager_ReturnsDefaultInstance_IfNoneRegistered()
{
// Act
IWebHookReceiverManager actual = _resolverMock.Object.GetReceiverManager();
// replacedert
replacedert.IsType<WebHookReceiverManager>(actual);
}
19
View Source File : DependencyScopeExtensionsTests.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public void GetHandlerSorter_ReturnsDefaultInstance_IfNoneRegistered()
{
// Act
IWebHookHandlerSorter actual = _resolverMock.Object.GetHandlerSorter();
// replacedert
replacedert.IsType<WebHookHandlerSorter>(actual);
}
19
View Source File : PropertyAssert.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
public static void Roundtrips<TInstance, TProperty>(TInstance instance, Expression<Func<TInstance, TProperty>> propertyExpression, TProperty defaultValue = default(TProperty),
TProperty? minLegalValue = null, TProperty? illegalLowerValue = null,
TProperty? maxLegalValue = null, TProperty? illegalUpperValue = null,
TProperty? roundtripValue = null)
where TInstance : clreplaced
where TProperty : struct
{
PropertyInfo property = GetPropertyInfo(propertyExpression);
Func<TInstance, TProperty> getter = (obj) => (TProperty)property.GetValue(obj, index: null);
Action<TInstance, TProperty> setter = (obj, value) => property.SetValue(obj, value, index: null);
replacedert.Equal(defaultValue, getter(instance));
if (roundtripValue.HasValue)
{
TestRoundtrip(instance, getter, setter, roundtripValue.Value);
}
if (minLegalValue.HasValue)
{
TestRoundtrip(instance, getter, setter, minLegalValue.Value);
}
if (maxLegalValue.HasValue)
{
TestRoundtrip(instance, getter, setter, maxLegalValue.Value);
}
if (illegalLowerValue.HasValue)
{
TargetInvocationException ex = replacedert.Throws<TargetInvocationException>(() => setter(instance, illegalLowerValue.Value));
replacedert.IsType<ArgumentOutOfRangeException>(ex.InnerException);
ArgumentOutOfRangeException rex = ex.InnerException as ArgumentOutOfRangeException;
replacedert.Equal(illegalLowerValue.Value, rex.ActualValue);
}
if (illegalUpperValue.HasValue)
{
TargetInvocationException ex = replacedert.Throws<TargetInvocationException>(() => setter(instance, illegalUpperValue.Value));
replacedert.IsType<ArgumentOutOfRangeException>(ex.InnerException);
ArgumentOutOfRangeException rex = ex.InnerException as ArgumentOutOfRangeException;
replacedert.Equal(illegalUpperValue.Value, rex.ActualValue);
}
}
19
View Source File : PollyHttpClientBuilderExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Theory]
[InlineData(HttpStatusCode.RequestTimeout)]
[InlineData((HttpStatusCode)500)]
[InlineData((HttpStatusCode)501)]
[InlineData((HttpStatusCode)502)]
[InlineData((HttpStatusCode)503)]
public async Task AddTransientHttpErrorPolicy_AddsPolicyHandler_HandlesStatusCode(HttpStatusCode statusCode)
{
// Arrange
var handler = new SequenceMessageHandler()
{
Responses =
{
(req) => new HttpResponseMessage(statusCode),
(req) => new HttpResponseMessage(HttpStatusCode.OK),
},
};
var serviceCollection = new ServiceCollection();
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com", c => c.BaseAddress = new Uri("http://example.com"))
.AddTransientHttpErrorPolicy(b => b.RetryAsync(5))
.ConfigureHttpMessageHandlerBuilder(b =>
{
b.PrimaryHandler = handler;
builder = b;
});
var services = serviceCollection.BuildServiceProvider();
var factory = services.GetRequiredService<IHttpClientFactory>();
// Act2
var client = factory.CreateClient("example.com");
// replacedert
replacedert.NotNull(client);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.IsType<PolicyHttpMessageHandler>(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
// Act 3
var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "/"));
// replacedert
replacedert.Equal(HttpStatusCode.OK, response.StatusCode);
}
19
View Source File : PollyHttpClientBuilderExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public async Task AddTransientHttpErrorPolicy_AddsPolicyHandler_HandlesHttpRequestException()
{
// Arrange
var handler = new SequenceMessageHandler()
{
Responses =
{
(req) => { throw new HttpRequestException("testing..."); },
(req) => new HttpResponseMessage(HttpStatusCode.OK),
},
};
var serviceCollection = new ServiceCollection();
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com", c => c.BaseAddress = new Uri("http://example.com"))
.AddTransientHttpErrorPolicy(b => b.RetryAsync(5))
.ConfigureHttpMessageHandlerBuilder(b =>
{
b.PrimaryHandler = handler;
builder = b;
});
var services = serviceCollection.BuildServiceProvider();
var factory = services.GetRequiredService<IHttpClientFactory>();
// Act2
var client = factory.CreateClient("example.com");
// replacedert
replacedert.NotNull(client);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.IsType<PolicyHttpMessageHandler>(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
// Act 3
var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "/"));
// replacedert
replacedert.Equal(HttpStatusCode.OK, response.StatusCode);
}
19
View Source File : HttpClientFactoryServiceCollectionExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHttpClient()
{
// Arrange
var serviceCollection = new ServiceCollection();
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com").ConfigureHttpMessageHandlerBuilder(b =>
{
builder = b;
b.AdditionalHandlers.Add(Mock.Of<DelegatingHandler>());
});
var services = serviceCollection.BuildServiceProvider();
var options = services.GetRequiredService<IOptionsMonitor<HttpClientFactoryOptions>>();
var factory = services.GetRequiredService<IHttpClientFactory>();
// Act2
var client = factory.CreateClient("example.com");
// replacedert
replacedert.NotNull(client);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.NotNull(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
}
19
View Source File : HttpClientFactoryServiceCollectionExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHttpMessageHandler()
{
var serviceCollection = new ServiceCollection();
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com").ConfigureHttpMessageHandlerBuilder(b =>
{
builder = b;
b.AdditionalHandlers.Add(Mock.Of<DelegatingHandler>());
});
var services = serviceCollection.BuildServiceProvider();
var factory = services.GetRequiredService<IHttpMessageHandlerFactory>();
// Act2
var handler = factory.CreateHandler("example.com");
// replacedert
replacedert.NotNull(handler);
replacedert.IsNotType<LoggingScopeHttpMessageHandler>(handler);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.NotNull(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
}
19
View Source File : DefaultHttpClientFactoryTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public void Factory_CreateClient_FiltersCanDecorateBuilder()
{
// Arrange
var expected = new HttpMessageHandler[]
{
Mock.Of<DelegatingHandler>(), // Added by filter1
Mock.Of<DelegatingHandler>(), // Added by filter2
Mock.Of<DelegatingHandler>(), // Added by filter3
Mock.Of<DelegatingHandler>(), // Added in options
Mock.Of<DelegatingHandler>(), // Added by filter3
Mock.Of<DelegatingHandler>(), // Added by filter2
Mock.Of<DelegatingHandler>(), // Added by filter1
Mock.Of<HttpMessageHandler>(), // Set as primary handler by options
};
Options.Get("github").HttpMessageHandlerBuilderActions.Add(b =>
{
b.PrimaryHandler = expected[7];
b.AdditionalHandlers.Add((DelegatingHandler)expected[3]);
});
var filter1 = new Mock<IHttpMessageHandlerBuilderFilter>();
filter1
.Setup(f => f.Configure(It.IsAny<Action<HttpMessageHandlerBuilder>>()))
.Returns<Action<HttpMessageHandlerBuilder>>(next => (b) =>
{
next(b); // Calls filter2
b.AdditionalHandlers.Insert(0, (DelegatingHandler)expected[0]);
b.AdditionalHandlers.Add((DelegatingHandler)expected[6]);
});
var filter2 = new Mock<IHttpMessageHandlerBuilderFilter>();
filter2
.Setup(f => f.Configure(It.IsAny<Action<HttpMessageHandlerBuilder>>()))
.Returns<Action<HttpMessageHandlerBuilder>>(next => (b) =>
{
next(b); // Calls filter3
b.AdditionalHandlers.Insert(0, (DelegatingHandler)expected[1]);
b.AdditionalHandlers.Add((DelegatingHandler)expected[5]);
});
var filter3 = new Mock<IHttpMessageHandlerBuilderFilter>();
filter3
.Setup(f => f.Configure(It.IsAny<Action<HttpMessageHandlerBuilder>>()))
.Returns<Action<HttpMessageHandlerBuilder>>(next => (b) =>
{
b.AdditionalHandlers.Add((DelegatingHandler)expected[2]);
next(b); // Calls options
b.AdditionalHandlers.Add((DelegatingHandler)expected[4]);
});
var factory = new TestHttpClientFactory(Services, ScopeFactory, LoggerFactory, Options, new[]
{
filter1.Object,
filter2.Object,
filter3.Object,
});
// Act
var handler = (HttpMessageHandler)factory.CreateHandlerEntry("github").Handler;
// replacedert
//
// The outer-most handler is always a lifetime tracking handler.
replacedert.IsType<LifetimeTrackingHttpMessageHandler>(handler);
handler = replacedert.IsreplacedignableFrom<DelegatingHandler>(handler).InnerHandler;
for (var i = 0; i < expected.Length - 1; i++)
{
replacedert.Same(expected[i], handler);
handler = replacedert.IsreplacedignableFrom<DelegatingHandler>(handler).InnerHandler;
}
replacedert.Same(expected[7], handler);
}
19
View Source File : DefaultHttpMessageHandlerBuilderTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public void Ctor_SetsPrimaryHandler()
{
// Arrange & Act
var builder = new DefaultHttpMessageHandlerBuilder(Services);
// Act
replacedert.IsType<HttpClientHandler>(builder.PrimaryHandler);
}
19
View Source File : PollyHttpClientBuilderExtensionsTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public async Task AddPolicyHandlerFromRegistry_Dynamic_AddsPolicyHandler()
{
var serviceCollection = new ServiceCollection();
var registry = serviceCollection.AddPolicyRegistry();
registry.Add<IAsyncPolicy<HttpResponseMessage>>("noop", NoOpPolicy);
registry.Add<IAsyncPolicy<HttpResponseMessage>>("retry", RetryPolicy);
HttpMessageHandlerBuilder builder = null;
// Act1
serviceCollection.AddHttpClient("example.com", c => c.BaseAddress = new Uri("http://example.com"))
.AddPolicyHandlerFromRegistry((reg, req) =>
{
return req.RequestUri.AbsolutePath == "/" ?
reg.Get<IAsyncPolicy<HttpResponseMessage>>("retry") :
reg.Get<IAsyncPolicy<HttpResponseMessage>>("noop");
})
.ConfigureHttpMessageHandlerBuilder(b =>
{
b.PrimaryHandler = PrimaryHandler;
builder = b;
});
var services = serviceCollection.BuildServiceProvider();
var factory = services.GetRequiredService<IHttpClientFactory>();
// Act2
var client = factory.CreateClient("example.com");
// replacedert
replacedert.NotNull(client);
replacedert.Collection(
builder.AdditionalHandlers,
h => replacedert.IsType<LoggingScopeHttpMessageHandler>(h),
h => replacedert.IsType<PolicyHttpMessageHandler>(h),
h => replacedert.IsType<LoggingHttpMessageHandler>(h));
// Act 3
var response = await client.SendAsync(new HttpRequestMessage());
// replacedert
replacedert.Equal(HttpStatusCode.Created, response.StatusCode);
// Act 4
await replacedert.ThrowsAsync<OverflowException>(() => client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "/throw")));
}
19
View Source File : ComponentRefreshTriggerTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public void RazorDoreplacedentOutputChanged_ClearsWorkspaceBufferOnRemove()
{
// Arrange
var updateBufferRequests = new List<Request>();
var refreshTrigger = CreateTestComponentRefreshTrigger(onUpdateBuffer: (request) => updateBufferRequests.Add(request));
refreshTrigger.BlockRefreshWorkStarting = new ManualResetEventSlim(initialState: false);
var filePath = "file.razor.g.cs";
var projectRootElement = ProjectRootElement.Create("/path/to/project.csproj");
projectRootElement.AddItem("Compile", filePath);
var projectInstance = new ProjectInstance(projectRootElement);
var onAddArgs = new RazorFileChangeEventArgs(filePath, filePath, projectInstance, RazorFileChangeKind.Added);
var onRemoveArgs = new RazorFileChangeEventArgs(filePath, filePath, ProjectInstance, RazorFileChangeKind.Removed);
refreshTrigger.RazorDoreplacedentOutputChanged(onAddArgs);
refreshTrigger.BlockRefreshWorkStarting.Set();
refreshTrigger.NotifyRefreshWorkCompleting.Wait(TimeSpan.FromSeconds(1));
refreshTrigger.NotifyRefreshWorkCompleting.Reset();
// Act
refreshTrigger.RazorDoreplacedentOutputChanged(onRemoveArgs);
// replacedert
refreshTrigger.BlockRefreshWorkStarting.Set();
refreshTrigger.NotifyRefreshWorkCompleting.Wait(TimeSpan.FromSeconds(1));
replacedert.True(refreshTrigger.NotifyRefreshWorkCompleting.IsSet);
replacedert.Collection(updateBufferRequests,
request =>
{
var updateBufferRequest = replacedert.IsType<UpdateBufferRequest>(request);
replacedert.Equal(filePath, updateBufferRequest.FileName);
replacedert.True(updateBufferRequest.FromDisk);
},
request =>
{
replacedert.Equal(filePath, request.FileName);
replacedert.Equal(string.Empty, request.Buffer);
});
}
19
View Source File : ComponentRefreshTriggerTest.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
[Fact]
public void RazorDoreplacedentOutputChanged_BatchesFileUpdates()
{
// Arrange
var updateBufferRequests = new List<Request>();
var refreshTrigger = CreateTestComponentRefreshTrigger(onUpdateBuffer: (request) => updateBufferRequests.Add(request));
refreshTrigger.BlockRefreshWorkStarting = new ManualResetEventSlim(initialState: false);
var file1Path = "file.razor.g.cs";
var file2Path = "anotherfile.razor.g.cs";
var file3Path = "file.razor.g.cs";
var projectRootElement = ProjectRootElement.Create("/path/to/project.csproj");
projectRootElement.AddItem("Compile", file1Path);
projectRootElement.AddItem("Compile", file2Path);
// Not adding file3 here to ensure it doesn't get updated.
var projectInstance = new ProjectInstance(projectRootElement);
var file1Args = new RazorFileChangeEventArgs(file1Path, file1Path, projectInstance, RazorFileChangeKind.Changed);
var file2Args = new RazorFileChangeEventArgs(file2Path, file2Path, projectInstance, RazorFileChangeKind.Changed);
var file3Args = new RazorFileChangeEventArgs(file3Path, file3Path, projectInstance, RazorFileChangeKind.Changed);
// Act
refreshTrigger.RazorDoreplacedentOutputChanged(file1Args);
refreshTrigger.RazorDoreplacedentOutputChanged(file2Args);
refreshTrigger.RazorDoreplacedentOutputChanged(file3Args);
// replacedert
refreshTrigger.BlockRefreshWorkStarting.Set();
refreshTrigger.NotifyRefreshWorkCompleting.Wait(TimeSpan.FromSeconds(1));
replacedert.True(refreshTrigger.NotifyRefreshWorkCompleting.IsSet);
replacedert.Collection(updateBufferRequests,
request =>
{
var updateBufferRequest = replacedert.IsType<UpdateBufferRequest>(request);
replacedert.Equal(file1Path, updateBufferRequest.FileName);
replacedert.True(updateBufferRequest.FromDisk);
},
request =>
{
var updateBufferRequest = replacedert.IsType<UpdateBufferRequest>(request);
replacedert.Equal(file2Path, updateBufferRequest.FileName);
replacedert.True(updateBufferRequest.FromDisk);
});
}
19
View Source File : ArgumentFactory_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Theory]
[InlineData(true)]
[InlineData(false)]
private void IntCanBeSerialized(bool byValue)
{
// Create
int i = 42;
Argument arg = ArgumentFactory.Create(m_StoreClient0, i, byValue);
replacedert.Empty(m_StoreClient0.Data);
replacedert.Equal(
EventArgType.Int,
arg.EventType); // Regardless of byValue because its a value type!
replacedert.False(arg.MbGUID.HasValue);
replacedert.True(arg.Int.HasValue);
replacedert.False(arg.StoreObjectId.HasValue);
// Serialize
buffer.EncodeEventArg(arg);
// Deserialize
Argument argDeserialized = buffer.DecodeEventArg();
replacedert.Equal(arg, argDeserialized);
// Resolve
object resolved = ArgumentFactory.Resolve(m_StoreClient0, argDeserialized);
replacedert.NotNull(resolved);
replacedert.IsType<int>(resolved);
replacedert.Equal(i, resolved);
}
19
View Source File : ArgumentFactory_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Theory]
[InlineData(0)]
[InlineData(1000)]
[InlineData(-1000)]
[InlineData(float.MinValue)]
[InlineData(float.MaxValue)]
[InlineData(float.NegativeInfinity)]
[InlineData(float.PositiveInfinity)]
private void FloatCanBeSerialized(float fValue)
{
// Create
Argument arg = ArgumentFactory.Create(m_StoreClient0, fValue, false);
replacedert.Empty(m_StoreClient0.Data);
replacedert.Equal(
EventArgType.Float,
arg.EventType); // Regardless of byValue because its a value type!
replacedert.True(arg.Float.HasValue);
// Serialize
buffer.EncodeEventArg(arg);
// Deserialize
Argument argDeserialized = buffer.DecodeEventArg();
replacedert.Equal(arg, argDeserialized);
// Resolve
object resolved = ArgumentFactory.Resolve(m_StoreClient0, argDeserialized);
replacedert.NotNull(resolved);
replacedert.IsType<float>(resolved);
replacedert.Equal(fValue, resolved);
}
19
View Source File : ArgumentFactory_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void StoreObjectIdResolveThrowsIfNotYetSynchronized()
{
// Create
DateTime time = DateTime.Now; // Just an arbitrary type that supports serialization.
Argument arg = ArgumentFactory.Create(m_StoreClient0, time, true);
replacedert.Equal(EventArgType.StoreObjectId, arg.EventType);
replacedert.False(arg.MbGUID.HasValue);
replacedert.False(arg.Int.HasValue);
replacedert.True(arg.StoreObjectId.HasValue);
replacedert.Contains(arg.StoreObjectId.Value, m_StoreClient0.Data);
// Serialize
buffer.EncodeEventArg(arg);
// Deserialize
Argument argDeserialized = buffer.DecodeEventArg();
replacedert.Equal(arg, argDeserialized);
// Resolve on client 0 works since that store was used for the create
object resolved = ArgumentFactory.Resolve(m_StoreClient0, argDeserialized);
replacedert.NotNull(resolved);
replacedert.IsType<DateTime>(resolved);
replacedert.Equal(time, resolved);
// Resolve on client 1 fails because the store was not synchronized
replacedert.Throws<ArgumentException>(
() => ArgumentFactory.Resolve(m_StoreClient1, argDeserialized));
// Sync the store
m_Environment.ExecuteSendsClients(); // Client0 -> Server
m_Environment.ExecuteSendsServer(); // Server -> Client 1
// Now client 1 can resolve the argument
object resolvedClient1 = ArgumentFactory.Resolve(m_StoreClient1, argDeserialized);
replacedert.NotNull(resolvedClient1);
replacedert.IsType<DateTime>(resolvedClient1);
replacedert.Equal(time, resolvedClient1);
}
19
View Source File : ArgumentFactory_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
void EnumCanBeUsedAsArgument()
{
// Create
ETest transferedValue = ETest.Second;
Argument arg = ArgumentFactory.Create(m_StoreClient0, transferedValue, true);
replacedert.Equal(EventArgType.Int, arg.EventType);
replacedert.False(arg.MbGUID.HasValue);
replacedert.True(arg.Int.HasValue);
replacedert.False(arg.StoreObjectId.HasValue);
// Serialize
buffer.EncodeEventArg(arg);
// Deserialize
Argument argDeserialized = buffer.DecodeEventArg();
replacedert.Equal(arg, argDeserialized);
// Resolve on client 0 works since that store was used for the create
object resolved = ArgumentFactory.Resolve(m_StoreClient0, argDeserialized);
replacedert.NotNull(resolved);
replacedert.IsType<int>(resolved);
replacedert.Equal(transferedValue, (ETest) resolved);
// client 1 can resolve the argument
object resolvedClient1 = ArgumentFactory.Resolve(m_StoreClient1, argDeserialized);
replacedert.NotNull(resolvedClient1);
replacedert.IsType<int>(resolvedClient1);
replacedert.Equal(transferedValue, (ETest) resolvedClient1);
}
19
View Source File : ArgumentFactory_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
void SmallObjectSerializationWorks()
{
Tuple<bool, float> toBeTransfered = new Tuple<bool, float>(true, 42);
byte[] raw = m_StoreClient0.Serialize(toBeTransfered);
Argument arg = new Argument(raw);
replacedert.Equal(EventArgType.SmallObjectRaw, arg.EventType);
replacedert.False(arg.MbGUID.HasValue);
replacedert.NotNull(arg.Raw);
replacedert.False(arg.StoreObjectId.HasValue);
// Serialize
buffer.EncodeEventArg(arg);
// Deserialize
Argument argDeserialized = buffer.DecodeEventArg();
replacedert.Equal(EventArgType.SmallObjectRaw, argDeserialized.EventType);
// Resolve on client 0 works since that store was used for the create
object resolved = ArgumentFactory.Resolve(m_StoreClient0, argDeserialized);
replacedert.NotNull(resolved);
replacedert.IsType<Tuple<bool, float>>(resolved);
replacedert.Equal(toBeTransfered, (Tuple<bool, float>) resolved);
// client 1 can resolve the argument
object resolvedClient1 = ArgumentFactory.Resolve(m_StoreClient1, argDeserialized);
replacedert.NotNull(resolvedClient1);
replacedert.IsType<Tuple<bool, float>>(resolvedClient1);
replacedert.Equal(toBeTransfered, (Tuple<bool, float>) resolvedClient1);
}
19
View Source File : CoopManaged_FieldGroupPatching.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void DoesRevertFieldChangeThroughProperty()
{
var foo = new Foo();
var fooManaged = new CoopManagedFoo(foo);
replacedert.Equal(0, foo.m_Bar);
replacedert.Equal(42, foo.m_Baz);
// Change through property
foo.SetBoth(1, 43);
replacedert.Equal(0, foo.m_Bar);
replacedert.Equal(42, foo.m_Baz);
// Verify that the change was recorded to the field change buffer
replacedert.NotNull(m_LatestBuffer);
replacedert.Equal(1, m_LatestBuffer.Count());
var changes = m_LatestBuffer.FetchChanges();
replacedert.Single(changes);
replacedert.True(changes.ContainsKey(CoopManagedFoo.AccessGroup));
// Verify the change was recorded on the `foo` instance
var instanceChanges = changes[CoopManagedFoo.AccessGroup];
replacedert.Single(instanceChanges);
replacedert.True(instanceChanges.ContainsKey(foo));
// Verify that the fields where packed as defined by CoopManaged.Group
var fooChange = instanceChanges[foo];
replacedert.IsType<List<object>>(fooChange.OriginalValue);
replacedert.IsType<List<object>>(fooChange.RequestedValue);
var valueBefore = (List<object>) fooChange.OriginalValue;
var requestedValue = (List<object>) fooChange.RequestedValue;
replacedert.Equal(2, valueBefore.Count);
replacedert.Equal(2, requestedValue.Count);
replacedert.IsType<int>(valueBefore[0]);
replacedert.IsType<int>(valueBefore[1]);
replacedert.IsType<int>(requestedValue[0]);
replacedert.IsType<int>(requestedValue[1]);
// Verify the actual field values
replacedert.Equal(0, (int) valueBefore[0]); // m_Bar
replacedert.Equal(42, (int) valueBefore[1]); // m_Baz
replacedert.Equal(1, (int) requestedValue[0]); // m_Bar
replacedert.Equal(43, (int) requestedValue[1]); // m_Baz
}
19
View Source File : Rail_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void ClientServerCommunication()
{
// Initialization
CampaignTimeControlMode expectedTimeControl = CampaignTimeControlMode.StoppablePlay;
RailClientRoom clientRoom = m_Client.StartRoom();
RailServerRoom serverRoom = m_Server.StartRoom();
RailEnreplacedyServer<SomeState> enreplacedyServerSide =
serverRoom.AddNewEnreplacedy<RailEnreplacedyServer<SomeState>>();
enreplacedyServerSide.State.Mode = expectedTimeControl;
m_Server.AddClient(m_PeerServerSide.Object, "");
m_Client.SetPeer(m_PeerClientSide.Object);
replacedert.Empty(clientRoom.Enreplacedies);
replacedert.Single(serverRoom.Enreplacedies);
// Sync enreplacedy from server to client
for (int i = 0; i < RailConfig.SERVER_SEND_RATE + RailConfig.CLIENT_SEND_RATE + 1; ++i)
{
m_ConClientSide.ExecuteSends();
m_Server.Update();
m_ConServerSide.ExecuteSends();
m_Client.Update();
}
// The client has received the enreplacedy.
replacedert.Single(clientRoom.Enreplacedies);
replacedert.Single(serverRoom.Enreplacedies);
// Clients representation of the enreplacedy is identical to the server
RailEnreplacedyBase enreplacedyProxy = clientRoom.Enreplacedies.First();
replacedert.IsType<RailEnreplacedyClient<SomeState>>(enreplacedyProxy);
RailEnreplacedyClient<SomeState> enreplacedyClientSide =
enreplacedyProxy as RailEnreplacedyClient<SomeState>;
replacedert.NotNull(enreplacedyClientSide);
replacedert.Equal(enreplacedyServerSide.Id, enreplacedyProxy.Id);
replacedert.Equal(expectedTimeControl, enreplacedyServerSide.State.Mode);
replacedert.Equal(expectedTimeControl, enreplacedyClientSide.State.Mode);
// Change the enreplacedy on server side and sync to the client
expectedTimeControl = CampaignTimeControlMode.Stop;
enreplacedyServerSide.State.Mode = expectedTimeControl;
// Let the server detect the change and send the packet
bool bWreplacedendTick = false;
while (!bWreplacedendTick)
{
m_Server.Update();
bWreplacedendTick = serverRoom.Tick.IsSendTick(RailConfig.SERVER_SEND_RATE);
}
// Let the client receive & process the packet. We need to bring the client up to the same tick as the server to see the result.
while (clientRoom.Tick < serverRoom.Tick)
{
m_ConServerSide.ExecuteSends();
m_Client.Update();
}
replacedert.Equal(expectedTimeControl, enreplacedyServerSide.State.Mode);
replacedert.Equal(expectedTimeControl, enreplacedyClientSide.State.Mode);
}
19
View Source File : GetPrefixBuilder_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void ReturnsCorrectDynamicMethod()
{
var method = CreateDynamicMethod();
var info = GetPrefixBuilder.CreateFactoryMethod<GetPrefixBuilder_Test>(method);
var retVal = info.Invoke(null, new object[] {null});
replacedert.NotNull(retVal);
replacedert.IsType<DynamicMethod>(retVal);
replacedert.Same((DynamicMethod) retVal, method);
}
19
View Source File : MethodPatcher_Postfix.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void IsHandlerCalledAfterCall()
{
var instance = new TestRPC();
replacedert.Equal(0, instance.NumberOfCalls);
replacedert.True(Patch.TryGetMethod(nameof(TestRPC.SyncedMethod), out var method));
var bWasHandlerCalled = false;
method.Postfix.SetHandler(instance, (eOrigin, args) =>
{
bWasHandlerCalled = true;
replacedert.Equal(EOriginator.Game, eOrigin);
replacedert.Single(args);
replacedert.IsType<int>(args[0]);
replacedert.True(instance.LatestArgument.HasValue);
replacedert.Equal(instance.LatestArgument.Value, (int) args[0]);
});
// Trigger the handler
replacedert.False(instance.LatestArgument.HasValue);
instance.SyncedMethod(42);
replacedert.True(bWasHandlerCalled);
replacedert.True(instance.LatestArgument.HasValue);
method.Prefix.RemoveHandler(instance);
}
19
View Source File : MethodPatchFactory_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void ArgumentsAreForwarded()
{
// Generate prefix for ThreeArgs
var method = AccessTools.Method(typeof(Foo), nameof(Foo.ThreeArgs));
var dispatcher = AccessTools.Method(
typeof(MethodPatchFactory_Test),
nameof(DispatcherCallOriginal));
var patch = new PatchedInvokable(method, typeof(Foo));
var prefix = MethodPatchFactory<MethodPatchFactory_Test>.GeneratePatch(
"Prefix",
patch,
dispatcher);
// Call
var iArg = 42;
var fArg = 43.0f;
var dArg = 44.0;
var ret = prefix.Invoke(m_Foo, new object[] {m_Foo, iArg, fArg, dArg});
replacedert.IsType<bool>(ret);
replacedert.False((bool) ret); // DispatcherCallOriginal returns false
replacedert.Single(m_DispatcherCalls);
replacedert.NotNull(m_DispatcherCalls[0]);
replacedert.Same(patch, m_DispatcherCalls[0]);
// Verify original was called
replacedert.Single(m_Foo.CallHistory);
replacedert.Equal(Foo.EMethod.ThreeArgs, m_Foo.CallHistory[0]);
replacedert.Single(m_Foo.ArgsHistory);
replacedert.Equal(3, m_Foo.ArgsHistory[0].Length);
// Verify individual args where forwarded
replacedert.NotNull(m_Foo.ArgsHistory[0][0]);
replacedert.IsType<int>(m_Foo.ArgsHistory[0][0]);
replacedert.Equal(iArg, (int) m_Foo.ArgsHistory[0][0]);
replacedert.NotNull(m_Foo.ArgsHistory[0][1]);
replacedert.IsType<float>(m_Foo.ArgsHistory[0][1]);
replacedert.Equal(fArg, (float) m_Foo.ArgsHistory[0][1]);
replacedert.NotNull(m_Foo.ArgsHistory[0][2]);
replacedert.IsType<double>(m_Foo.ArgsHistory[0][2]);
replacedert.Equal(dArg, (double) m_Foo.ArgsHistory[0][2]);
MethodPatchFactory<MethodPatchFactory_Test>.UnpatchAll();
}
19
View Source File : MethodPatchFactory_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void ArgumentsAreForwarded()
{
// Generate prefix for ThreeArgs
var method = AccessTools.Method(typeof(Foo), nameof(Foo.ThreeArgs));
var dispatcher = AccessTools.Method(
typeof(MethodPatchFactory_Test),
nameof(DispatcherCallOriginal));
var patch = new PatchedInvokable(method, typeof(Foo));
var prefix = MethodPatchFactory<MethodPatchFactory_Test>.GeneratePatch(
"Prefix",
patch,
dispatcher);
// Call
var iArg = 42;
var fArg = 43.0f;
var dArg = 44.0;
var ret = prefix.Invoke(m_Foo, new object[] {m_Foo, iArg, fArg, dArg});
replacedert.IsType<bool>(ret);
replacedert.False((bool) ret); // DispatcherCallOriginal returns false
replacedert.Single(m_DispatcherCalls);
replacedert.NotNull(m_DispatcherCalls[0]);
replacedert.Same(patch, m_DispatcherCalls[0]);
// Verify original was called
replacedert.Single(m_Foo.CallHistory);
replacedert.Equal(Foo.EMethod.ThreeArgs, m_Foo.CallHistory[0]);
replacedert.Single(m_Foo.ArgsHistory);
replacedert.Equal(3, m_Foo.ArgsHistory[0].Length);
// Verify individual args where forwarded
replacedert.NotNull(m_Foo.ArgsHistory[0][0]);
replacedert.IsType<int>(m_Foo.ArgsHistory[0][0]);
replacedert.Equal(iArg, (int) m_Foo.ArgsHistory[0][0]);
replacedert.NotNull(m_Foo.ArgsHistory[0][1]);
replacedert.IsType<float>(m_Foo.ArgsHistory[0][1]);
replacedert.Equal(fArg, (float) m_Foo.ArgsHistory[0][1]);
replacedert.NotNull(m_Foo.ArgsHistory[0][2]);
replacedert.IsType<double>(m_Foo.ArgsHistory[0][2]);
replacedert.Equal(dArg, (double) m_Foo.ArgsHistory[0][2]);
MethodPatchFactory<MethodPatchFactory_Test>.UnpatchAll();
}
19
View Source File : SharedRemoteStore_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void DataIsBroadcastToOtherClients()
{
var env = new TestEnvironment(2);
var message = "Hello World";
var client0 = env.StoresClient[0];
var client1 = env.StoresClient[1];
var id = client0.Insert(message);
replacedert.Contains(id, client0.Data);
replacedert.DoesNotContain(id, client1.Data);
// Client0 Add -> Server
env.ExecuteSendsClients();
replacedert.DoesNotContain(id, client1.Data);
replacedert.Contains(id, env.StoreServer.Data);
replacedert.IsType<string>(env.StoreServer.Data[id]);
replacedert.Equal(message, env.StoreServer.Data[id] as string);
// Server Add -> Client1
env.ExecuteSendsServer();
replacedert.Contains(id, client1.Data);
replacedert.IsType<string>(client1.Data[id]);
replacedert.Equal(message, client1.Data[id] as string);
// Client1 ACK -> Server
env.ExecuteSendsClients();
replacedert.False(client0.State[id].Acknowledged);
// Server ACK -> Client 0
env.ExecuteSendsServer();
replacedert.True(client0.State[id].Acknowledged);
// Object is present and equal in all stores
replacedert.Equal(message, client0.Data[id] as string);
replacedert.Equal(message, client1.Data[id] as string);
replacedert.Equal(message, env.StoreServer.Data[id] as string);
}
19
View Source File : SharedRemoteStore_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void DataIsReceivedFromClient()
{
var env = new TestEnvironment(1);
var message = "Hello World";
var client0 = env.StoresClient[0];
var id = client0.Insert(message);
replacedert.DoesNotContain(id, env.StoreServer.Data);
env.ExecuteSendsClients();
replacedert.Contains(id, env.StoreServer.Data);
replacedert.IsType<string>(env.StoreServer.Data[id]);
replacedert.Equal(message, env.StoreServer.Data[id] as string);
}
19
View Source File : CoopManaged_FieldGroupPatching.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void DoesRevertFieldChangeThroughProperty()
{
var foo = new Foo();
var fooManaged = new CoopManagedFoo(foo);
replacedert.Equal(0, foo.m_Bar);
replacedert.Equal(42, foo.m_Baz);
// Change through property
foo.SetBoth(1, 43);
replacedert.Equal(0, foo.m_Bar);
replacedert.Equal(42, foo.m_Baz);
// Verify that the change was recorded to the field change buffer
replacedert.NotNull(m_LatestBuffer);
replacedert.Equal(1, m_LatestBuffer.Count());
var changes = m_LatestBuffer.FetchChanges();
replacedert.Single(changes);
replacedert.True(changes.ContainsKey(CoopManagedFoo.AccessGroup));
// Verify the change was recorded on the `foo` instance
var instanceChanges = changes[CoopManagedFoo.AccessGroup];
replacedert.Single(instanceChanges);
replacedert.True(instanceChanges.ContainsKey(foo));
// Verify that the fields where packed as defined by CoopManaged.Group
var fooChange = instanceChanges[foo];
replacedert.IsType<List<object>>(fooChange.OriginalValue);
replacedert.IsType<List<object>>(fooChange.RequestedValue);
var valueBefore = (List<object>) fooChange.OriginalValue;
var requestedValue = (List<object>) fooChange.RequestedValue;
replacedert.Equal(2, valueBefore.Count);
replacedert.Equal(2, requestedValue.Count);
replacedert.IsType<int>(valueBefore[0]);
replacedert.IsType<int>(valueBefore[1]);
replacedert.IsType<int>(requestedValue[0]);
replacedert.IsType<int>(requestedValue[1]);
// Verify the actual field values
replacedert.Equal(0, (int) valueBefore[0]); // m_Bar
replacedert.Equal(42, (int) valueBefore[1]); // m_Baz
replacedert.Equal(1, (int) requestedValue[0]); // m_Bar
replacedert.Equal(43, (int) requestedValue[1]); // m_Baz
}
19
View Source File : MethodPatchFactory_Test.cs
License : MIT License
Project Creator : Bannerlord-Coop-Team
License : MIT License
Project Creator : Bannerlord-Coop-Team
[Fact]
private void GeneratePrefixWithMultipleArgsWorks()
{
// Generate prefix for SingleArg
var method = AccessTools.Method(typeof(Foo), nameof(Foo.ThreeArgs));
var dispatcher = AccessTools.Method(
typeof(MethodPatchFactory_Test),
nameof(DispatcherTrue));
var patch = new PatchedInvokable(method, typeof(Foo));
var prefix = MethodPatchFactory<MethodPatchFactory_Test>.GeneratePatch(
"Prefix",
patch,
dispatcher);
// Call
var ret = prefix.Invoke(m_Foo, new object[] {m_Foo, 42, 43.0f, 44.0});
replacedert.IsType<bool>(ret);
replacedert.True((bool) ret); // AlwaysCallOriginal
MethodPatchFactory<MethodPatchFactory_Test>.UnpatchAll();
}
19
View Source File : OptimisticConcurrencyJetTest.cs
License : Apache License 2.0
Project Creator : bubibubi
License : Apache License 2.0
Project Creator : bubibubi
[ConditionalFact]
public Task Database_concurrency_token_value_is_discarded_for_non_conflicting_enreplacedies()
{
byte[] firstVersion = null;
byte[] secondVersion = null;
return ConcurrencyTestAsync(
c => c.Drivers.Single(d => d.CarNumber == 2).Podiums = StorePodiums,
c =>
{
var driver = c.Drivers.Single(d => d.CarNumber == 1);
driver.Podiums = ClientPodiums;
firstVersion = c.Entry(driver).Property<byte[]>("Version").CurrentValue;
var secondDriver = c.Drivers.Single(d => d.CarNumber == 2);
secondDriver.Podiums = ClientPodiums;
secondVersion = c.Entry(secondDriver).Property<byte[]>("Version").CurrentValue;
},
(c, ex) =>
{
replacedert.IsType<DbUpdateConcurrencyException>(ex);
var firstDriverEntry = c.Entry(c.Drivers.Local.Single(d => d.CarNumber == 1));
replacedert.Equal(firstVersion, firstDriverEntry.Property<byte[]>("Version").CurrentValue);
var databaseValues = firstDriverEntry.GetDatabaseValues();
replacedert.NotEqual(firstVersion, databaseValues["Version"]);
firstDriverEntry.OriginalValues.SetValues(databaseValues);
var secondDriverEntry = ex.Entries.Single();
replacedert.Equal(secondVersion, secondDriverEntry.Property("Version").CurrentValue);
secondDriverEntry.OriginalValues.SetValues(secondDriverEntry.GetDatabaseValues());
ResolveConcurrencyTokens(secondDriverEntry);
},
c => replacedert.Equal(ClientPodiums, c.Drivers.Single(d => d.CarNumber == 2).Podiums));
}
19
View Source File : CatalogControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Get_catalog_items_success()
{
//Arrange
var fakeBrandFilterApplied = 1;
var fakeTypesFilterApplied = 2;
var fakePage = 2;
var fakeCatalog = GetFakeCatalog();
var expectedNumberOfPages = 5;
var expectedTotalPages = 50;
var expectedCurrentPage = 2;
_catalogServiceMock.Setup(x => x.GetCatalogItems
(
It.Is<int>(y => y == fakePage),
It.IsAny<int>(),
It.Is<int?>(y => y == fakeBrandFilterApplied),
It.Is<int?>(y => y == fakeTypesFilterApplied)
))
.Returns(Task.FromResult(fakeCatalog));
//Act
var orderController = new CatalogController(_catalogServiceMock.Object);
var actionResult = await orderController.Index(fakeBrandFilterApplied, fakeTypesFilterApplied, fakePage);
//replacedert
var viewResult = replacedert.IsType<ViewResult>(actionResult);
var model = replacedert.IsreplacedignableFrom<IndexViewModel>(viewResult.ViewData.Model);
replacedert.Equal(model.PaginationInfo.TotalPages, expectedNumberOfPages);
replacedert.Equal(model.PaginationInfo.TotalItems, expectedTotalPages);
replacedert.Equal(model.PaginationInfo.ActualPage, expectedCurrentPage);
replacedert.Empty(model.PaginationInfo.Next);
replacedert.Empty(model.PaginationInfo.Previous);
}
19
View Source File : AccountControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public void Signin_with_token_success()
{
//Arrange
var fakeCP = GenerateFakeClaimsIdenreplacedy();
_httpContextMock.Setup(x => x.User)
.Returns(new ClaimsPrincipal(fakeCP));
//Act
var accountController = new AccountController(_idenreplacedyParserMock.Object);
accountController.ControllerContext.HttpContext = _httpContextMock.Object;
var actionResult = accountController.SignIn("");
//replacedert
var redirectResult = replacedert.IsType<RedirectToActionResult>(actionResult);
replacedert.Equal(redirectResult.ActionName, "Index");
replacedert.Equal(redirectResult.ControllerName, "Catalog");
replacedert.Equal(accountController.ViewData["access_token"], "fakeToken");
}
19
View Source File : CartControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Post_cart_success()
{
//Arrange
var fakeBuyerId = "1";
var action = string.Empty;
var fakeBasket = GetFakeBasket(fakeBuyerId);
var fakeQuanreplacedies = new Dictionary<string, int>()
{
["fakeProdA"] = 1,
["fakeProdB"] = 2
};
_basketServiceMock.Setup(x => x.SetQuanreplacedies(It.IsAny<ApplicationUser>(), It.IsAny<Dictionary<string, int>>()))
.Returns(Task.FromResult(fakeBasket));
_basketServiceMock.Setup(x => x.UpdateBasket(It.IsAny<BasketModel>()))
.Returns(Task.FromResult(fakeBasket));
//Act
var orderController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _idenreplacedyParserMock.Object);
orderController.ControllerContext.HttpContext = _contextMock.Object;
var actionResult = await orderController.Index(fakeQuanreplacedies, action);
//replacedert
var viewResult = replacedert.IsType<ViewResult>(actionResult);
var model = replacedert.IsreplacedignableFrom<BasketModel>(viewResult.ViewData.Model);
}
19
View Source File : CartControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Add_to_cart_success()
{
//Arrange
var fakeCatalogItem = GetFakeCatalogItem();
_basketServiceMock.Setup(x => x.AddItemToBasket(It.IsAny<ApplicationUser>(), It.IsAny<Baskereplacedem>()))
.Returns(Task.FromResult(1));
//Act
var orderController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _idenreplacedyParserMock.Object);
orderController.ControllerContext.HttpContext = _contextMock.Object;
var actionResult = await orderController.AddToCart(fakeCatalogItem);
//replacedert
var redirectToActionResult = replacedert.IsType<RedirectToActionResult>(actionResult);
replacedert.Equal("Catalog", redirectToActionResult.ControllerName);
replacedert.Equal("Index", redirectToActionResult.ActionName);
}
19
View Source File : OrderControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Get_order_list_success()
{
//Arrange
var expectedTotalResults = 1;
var fakeOrder = GetFakeOrder();
_orderServiceMock.Setup(x => x.GetMyOrders(It.IsAny<ApplicationUser>()))
.Returns(Task.FromResult(new List<Order>() { fakeOrder }));
//Act
var orderController = new OrderController(_orderServiceMock.Object, _basketServiceMock.Object, _idenreplacedyParserMock.Object);
orderController.ControllerContext.HttpContext = _contextMock.Object;
var actionResult = await orderController.Index(fakeOrder);
//replacedert
var viewResult = replacedert.IsType<ViewResult>(actionResult);
var model = replacedert.IsreplacedignableFrom<List<Order>>(viewResult.ViewData.Model);
replacedert.Equal(model.Count, expectedTotalResults);
}
19
View Source File : OrderControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Get_order_detail_success()
{
//Arrange
var fakeOrderId = "12";
var fakeOrder = GetFakeOrder();
_orderServiceMock.Setup(x => x.GetOrder(It.IsAny<ApplicationUser>(), It.IsAny<string>()))
.Returns(Task.FromResult(fakeOrder));
//Act
var orderController = new OrderController(_orderServiceMock.Object, _basketServiceMock.Object, _idenreplacedyParserMock.Object);
orderController.ControllerContext.HttpContext = _contextMock.Object;
var actionResult = await orderController.Detail(fakeOrderId);
//replacedert
var viewResult = replacedert.IsType<ViewResult>(actionResult);
replacedert.IsreplacedignableFrom<Order>(viewResult.ViewData.Model);
}
19
View Source File : OrderControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Post_create_order_success()
{
//Arrange
var fakeOrder = GetFakeOrder();
_basketServiceMock.Setup(x => x.CleanBasket(It.IsAny<ApplicationUser>()))
.Returns(Task.FromResult(1));
_orderServiceMock.Setup(x => x.CreateOrder(It.IsAny<Order>()))
.Returns(Task.FromResult(1));
//Act
var orderController = new OrderController(_orderServiceMock.Object, _basketServiceMock.Object, _idenreplacedyParserMock.Object);
orderController.ControllerContext.HttpContext = _contextMock.Object;
var actionResult = await orderController.Create(fakeOrder, "fakeAction");
//replacedert
var redirectToActionResult = replacedert.IsType<RedirectToActionResult>(actionResult);
replacedert.Null(redirectToActionResult.ControllerName);
replacedert.Equal("Index", redirectToActionResult.ActionName);
}
19
View Source File : OrderControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Post_create_order_fail()
{
//Arrange
var fakeOrder = GetFakeOrder();
_basketServiceMock.Setup(x => x.CleanBasket(It.IsAny<ApplicationUser>()))
.Returns(Task.FromResult(1));
_orderServiceMock.Setup(x => x.CreateOrder(It.IsAny<Order>()))
.Returns(Task.FromResult(1));
//Act
var orderController = new OrderController(_orderServiceMock.Object, _basketServiceMock.Object, _idenreplacedyParserMock.Object);
orderController.ControllerContext.HttpContext = _contextMock.Object;
orderController.ModelState.AddModelError("fakeError", "fakeError");
var actionResult = await orderController.Create(fakeOrder, "action");
//replacedert
var viewResult = replacedert.IsType<ViewResult>(actionResult);
replacedert.IsreplacedignableFrom<Order>(viewResult.ViewData.Model);
}
19
View Source File : CartControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Post_cart_checkout_success()
{
//Arrange
var fakeBuyerId = "1";
var action = "[ Checkout ]";
var fakeBasket = GetFakeBasket(fakeBuyerId);
var fakeQuanreplacedies = new Dictionary<string, int>()
{
["fakeProdA"] = 1,
["fakeProdB"] = 2
};
_basketServiceMock.Setup(x => x.SetQuanreplacedies(It.IsAny<ApplicationUser>(), It.IsAny<Dictionary<string, int>>()))
.Returns(Task.FromResult(fakeBasket));
_basketServiceMock.Setup(x => x.UpdateBasket(It.IsAny<BasketModel>()))
.Returns(Task.FromResult(fakeBasket));
//Act
var orderController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _idenreplacedyParserMock.Object);
orderController.ControllerContext.HttpContext = _contextMock.Object;
var actionResult = await orderController.Index(fakeQuanreplacedies, action);
//replacedert
var redirectToActionResult = replacedert.IsType<RedirectToActionResult>(actionResult);
replacedert.Equal("Order", redirectToActionResult.ControllerName);
replacedert.Equal("Create", redirectToActionResult.ActionName);
}
19
View Source File : OrderControllerTest.cs
License : MIT License
Project Creator : dotnet-architecture
License : MIT License
Project Creator : dotnet-architecture
[Fact]
public async Task Get_create_order_success()
{
//Arrange
var fakeBuyerId = "1";
var fakeBasket = GetFakeBasket(fakeBuyerId);
var fakeOrder = GetFakeOrder();
_basketServiceMock.Setup(x => x.GetBasket(It.IsAny<ApplicationUser>()))
.Returns(Task.FromResult(fakeBasket));
_basketServiceMock.Setup(x => x.MapBasketToOrder(It.IsAny<BasketModel>()))
.Returns(fakeOrder);
_orderServiceMock.Setup(x => x.MapUserInfoIntoOrder(It.IsAny<ApplicationUser>(), It.IsAny<Order>()))
.Returns(fakeOrder);
//Act
var orderController = new OrderController(_orderServiceMock.Object, _basketServiceMock.Object, _idenreplacedyParserMock.Object);
orderController.ControllerContext.HttpContext = _contextMock.Object;
var actionResult = await orderController.Create();
//replacedert
var viewResult = replacedert.IsType<ViewResult>(actionResult);
replacedert.IsreplacedignableFrom<Order>(viewResult.ViewData.Model);
}
19
View Source File : ProductSearchServiceTests.cs
License : Apache License 2.0
Project Creator : epam
License : Apache License 2.0
Project Creator : epam
[Fact]
public void GetProducts_ShouldReturnResultModel()
{
//act
var result = this.service.GetProducts(this.fixture.Create<ProductSearchOptions>());
//replacedert
replacedert.IsType<Result<ProductSearchResults>>(result);
}
19
View Source File : BaseSafeJssGetLayoutServiceContextProcessorTests.cs
License : Apache License 2.0
Project Creator : epam
License : Apache License 2.0
Project Creator : epam
[Fact]
public void ResolveContents_ErrorableContentsResolver_ExceptionNotThrowed()
{
using (var db = new Db
{
new DbItem("RenderedItem")
})
{
var renderedItem = db.Gereplacedem("/sitecore/content/RenderedItem");
var configurationResolver = Subsreplacedute.For<IConfigurationResolver>();
var args = new GetLayoutServiceContextArgs
{
RenderedItem = renderedItem,
RenderingConfiguration = new DefaultRenderingConfiguration(),
ContextData =
{
{ "_sign", 1 }
}
};
IGetLayoutServiceContextProcessor contextProcessor =
new ErrorableGetLayoutServiceContextProcessor(configurationResolver);
contextProcessor.Process(args);
var resultObject = args.ContextData["_sign"];
var value = replacedert.IsType<int>(resultObject);
replacedert.Equal(1, value);
}
}
19
View Source File : JsonExtensionsTests.cs
License : MIT License
Project Creator : GFoley83
License : MIT License
Project Creator : GFoley83
[Fact]
private void Can_unflatten_a_flattened_dictionary()
{
replacedert.IsType<JObject>(fixture.FlattendSimpleJson.Unflatten());
replacedert.IsType<JObject>(fixture.FlattenedComplexJson.Unflatten());
replacedert.IsType<JObject>(fixture.FlattendSimpleJsonWithoutEmpty.Unflatten());
replacedert.IsType<JObject>(fixture.FlattenedComplexJsonWithoutEmpty.Unflatten());
}
19
View Source File : ArrayRunTests.cs
License : MIT License
Project Creator : haven1433
License : MIT License
Project Creator : haven1433
[Fact]
public void CanParseArrayAnchorAddedFromViewPort() {
ViewPort.Edit("^bob[name\"\"14]12 ");
replacedert.IsType<ArrayRun>(Model.GetNextRun(0));
}
19
View Source File : ArrayRunTests.cs
License : MIT License
Project Creator : haven1433
License : MIT License
Project Creator : haven1433
[Fact]
public void ArraysWithInnerAnchorsRenderAnchors() {
var (model, viewport) = (Model, ViewPort);
var changeToken = new ModelDelta();
// arrange: setup data with a bunch of pointers pointing into an array of strings
model.WritePointer(changeToken, 0x00, 0x80);
model.ObserveRunWritten(changeToken, new PointerRun(0x00));
model.WritePointer(changeToken, 0x08, 0x84);
model.ObserveRunWritten(changeToken, new PointerRun(0x08));
model.WritePointer(changeToken, 0x10, 0x88);
model.ObserveRunWritten(changeToken, new PointerRun(0x10));
model.WritePointer(changeToken, 0x18, 0x8C);
model.ObserveRunWritten(changeToken, new PointerRun(0x18));
// arrange: setup the array of strings
WriteStrings(model.RawData, 0x80, "cat", "bat", "hat", "sat");
var existingAnchor = model.GetNextAnchor(0x80);
ArrayRun.TryParse(model, "^[name\"\"4]4", 0x80, existingAnchor.PointerSources, out var arrayRun);
model.ObserveAnchorWritten(changeToken, "sample", arrayRun);
// arrange: create the viewmodel
viewport.Refresh();
// replacedert: viewmodel renders anchors within the array
// note that the strings are only 4 bytes long
replacedert.IsType<Anchor>(viewport[0, 8].Format);
replacedert.IsType<Anchor>(viewport[4, 8].Format);
replacedert.IsType<Anchor>(viewport[8, 8].Format);
replacedert.IsType<Anchor>(viewport[12, 8].Format);
replacedert.IsNotType<Anchor>(viewport[0, 9].Format);
// replacedert: viewmodel renders pointers with names into the array
replacedert.Equal("sample", ((Pointer)viewport[0, 0].Format).DestinationName);
replacedert.Equal("sample/1", ((Pointer)viewport[8, 0].Format).DestinationName);
replacedert.Equal("sample/2", ((Pointer)viewport[0, 1].Format).DestinationName);
replacedert.Equal("sample/3", ((Pointer)viewport[8, 1].Format).DestinationName);
}
19
View Source File : ArrayRunTests.cs
License : MIT License
Project Creator : haven1433
License : MIT License
Project Creator : haven1433
[Fact]
public void CanAddTextFormatToAnchorUsedOnlyByAnArrayAtStart() {
var changeToken = new ModelDelta();
var (model, viewPort) = (Model, ViewPort);
WriteStrings(model.RawData, 0x10, "This is a song!");
ArrayRun.TryParse(model, "^[content<>]1", 0x00, null, out var array);
model.WritePointer(changeToken, 0x00, 0x10);
model.ObserveAnchorWritten(changeToken, "array", array);
// there is a pointer at 0x00 that points to 0x10
// but we know about it via an array
// at 0x10 is text
// but we don't know that it's text
ViewPort.Refresh();
viewPort.SelectionStart = new Point(0, 1);
viewPort.Edit("^\"\" ");
// adding the format should've stuck
replacedert.Empty(Errors);
replacedert.IsType<PCS>(viewPort[1, 1].Format);
}
19
View Source File : ArrayRunTests.cs
License : MIT License
Project Creator : haven1433
License : MIT License
Project Creator : haven1433
[Fact]
public void CanAddTextFormatToAnchorUsedOnlyByAnArray() {
var changeToken = new ModelDelta();
var (model, viewPort) = (Model, ViewPort);
WriteStrings(model.RawData, 0x10, "This is a song!");
ArrayRun.TryParse(model, "^[content<>]4", 0x00, null, out var array);
model.WritePointer(changeToken, 0x04, 0x10);
model.ObserveAnchorWritten(changeToken, "array", array);
// there is a pointer at 0x00 that points to 0x10
// but we know about it via an array
// at 0x10 is text
// but we don't know that it's text
ViewPort.Refresh();
viewPort.SelectionStart = new Point(0, 1);
viewPort.Edit("^\"\" ");
// adding the format should've stuck
replacedert.Empty(Errors);
replacedert.IsType<PCS>(viewPort[1, 1].Format);
}
See More Examples