public void Constructor2HappyPath() { var source = new SequentialEvent { Sequence = "1", SequenceType = SequenceTypes.Integer, Id = "MyId", Time = new DateTime(2020, 7, 9, 22, 21, 37, DateTimeKind.Local), Source = "http://mysource/", Type = "MyType", DataContentType = "application/json; charset=utf-8", DataSchema = "http://mydataschema/", Subject = "MySubject" }; var cloudEvent = new SequentialEvent(source); cloudEvent.Sequence.Should().Be("2"); cloudEvent.SequenceType.Should().Be(SequenceTypes.Integer); cloudEvent.Source.Should().BeSameAs(source.Source); cloudEvent.Type.Should().BeSameAs(source.Type); cloudEvent.DataContentType.Should().BeSameAs(source.DataContentType); cloudEvent.DataSchema.Should().BeSameAs(source.DataSchema); cloudEvent.Subject.Should().BeSameAs(source.Subject); cloudEvent.Id.Should().NotBe(source.Id); cloudEvent.Time.Should().NotBe(source.Time); }
public void SequenceTypePropertyHappyPath() { var cloudEvent = new SequentialEvent(); cloudEvent.SequenceType = "abc"; cloudEvent.SequenceType.Should().Be("abc"); }
public void SequencePropertyHappyPath() { var cloudEvent = new SequentialEvent(); cloudEvent.Sequence = "123"; cloudEvent.Sequence.Should().Be("123"); }
public void ValidateMethodSadPath1(string sequence) { var cloudEvent = new SequentialEvent { Type = "MyType", Source = "/MySource", Sequence = sequence }; cloudEvent.Invoking(ce => ce.Validate()) .Should().ThrowExactly <CloudEventValidationException>() .WithMessage("Sequence cannot be null or empty."); }
public void ValidateMethodHappyPath() { var cloudEvent = new SequentialEvent { Type = "MyType", Source = "/MySource", Sequence = "1", SequenceType = SequenceTypes.Integer }; cloudEvent.Invoking(ce => ce.Validate()) .Should().NotThrow(); }
public void ValidateMethodSadPath2() { var cloudEvent = new SequentialEvent { Type = "MyType", Source = "/MySource", Sequence = "abc", SequenceType = SequenceTypes.Integer }; cloudEvent.Invoking(ce => ce.Validate()) .Should().ThrowExactly <CloudEventValidationException>() .WithMessage("Invalid valid for Sequence: 'abc'.*"); }
public void ValidateStaticMethodSadPath1() { // Missing Sequence var senderMessage = new SenderMessage("Hello, world!"); senderMessage.Headers.Add(CloudEvent.IdAttribute, "MyId"); senderMessage.Headers.Add(CloudEvent.SourceAttribute, new Uri("http://MySource")); senderMessage.Headers.Add(CloudEvent.TypeAttribute, "MyType"); senderMessage.Headers.Add(CloudEvent.TimeAttribute, DateTime.UtcNow); Action act = () => SequentialEvent.Validate(senderMessage); act.Should().ThrowExactly <CloudEventValidationException>(); }
public void ValidateStaticMethodHappyPath1() { var senderMessage = new SenderMessage("Hello, world!"); senderMessage.Headers.Add(SequentialEvent.SequenceAttribute, "1"); senderMessage.Headers.Add(CloudEvent.SpecVersionAttribute, "1.0"); senderMessage.Headers.Add(CloudEvent.IdAttribute, "MyId"); senderMessage.Headers.Add(CloudEvent.SourceAttribute, new Uri("http://MySource")); senderMessage.Headers.Add(CloudEvent.TypeAttribute, "MyType"); senderMessage.Headers.Add(CloudEvent.TimeAttribute, DateTime.UtcNow); Action act = () => SequentialEvent.Validate(senderMessage); act.Should().NotThrow(); }
public void ValidateStaticMethodHappyPath2() { // Non-default protocol binding var senderMessage = new SenderMessage("Hello, world!"); senderMessage.Headers.Add("test-" + SequentialEvent.SequenceAttribute, "1"); senderMessage.Headers.Add("test-" + CloudEvent.SpecVersionAttribute, "1.0"); senderMessage.Headers.Add("test-" + CloudEvent.IdAttribute, "MyId"); senderMessage.Headers.Add("test-" + CloudEvent.SourceAttribute, new Uri("http://MySource")); senderMessage.Headers.Add("test-" + CloudEvent.TypeAttribute, "MyType"); senderMessage.Headers.Add("test-" + CloudEvent.TimeAttribute, DateTime.UtcNow); var mockProtocolBinding = new Mock <IProtocolBinding>(); mockProtocolBinding.Setup(m => m.GetHeaderName(It.IsAny <string>())).Returns <string>(header => "test-" + header); Action act = () => SequentialEvent.Validate(senderMessage, mockProtocolBinding.Object); act.Should().NotThrow(); }
private static IEnumerator ElementShowingCoroutine(SequentialEvent sequentialEvent) { yield return(new WaitForSecondsRealtime(sequentialEvent.timeToTrigger)); sequentialEvent.eventToTrigger?.Invoke(); }