//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @ParameterizedTest(name = "V{0}") @ValueSource(longs = {999, -1}) void shouldThrowExceptionIfVersionIsUnknown(long protocolVersion)
        internal virtual void ShouldThrowExceptionIfVersionIsUnknown(long protocolVersion)
        {
            BoltStateMachineFactoryImpl factory = NewBoltFactory();

            System.ArgumentException error = assertThrows(typeof(System.ArgumentException), () => factory.NewStateMachine(protocolVersion, _channel));
            assertThat(error.Message, startsWith("Failed to create a state machine for protocol version"));
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void shouldCreateBoltStateMachinesV3()
        internal virtual void ShouldCreateBoltStateMachinesV3()
        {
            BoltStateMachineFactoryImpl factory = NewBoltFactory();

            BoltStateMachine boltStateMachine = factory.NewStateMachine(3L, _channel);

            assertNotNull(boltStateMachine);
            assertThat(boltStateMachine, instanceOf(typeof(BoltStateMachineV3)));
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @ParameterizedTest(name = "V{0}") @ValueSource(longs = {org.neo4j.bolt.v1.BoltProtocolV1.VERSION, org.neo4j.bolt.v2.BoltProtocolV2.VERSION}) void shouldCreateBoltStateMachinesV1(long protocolVersion)
        internal virtual void ShouldCreateBoltStateMachinesV1(long protocolVersion)
        {
            BoltStateMachineFactoryImpl factory = NewBoltFactory();

            BoltStateMachine boltStateMachine = factory.NewStateMachine(protocolVersion, _channel);

            assertNotNull(boltStateMachine);
            assertThat(boltStateMachine, instanceOf(typeof(BoltStateMachineV1)));
        }