public void GridionStopTest() { GridionInternal gridionInternal = null; try { var configuration = new GridionConfiguration("127.0.0.1", 24000); var clusterCurator = NSubstitute.Substitute.For <IClusterCurator>(); gridionInternal = new GridionInternal(configuration, clusterCurator); gridionInternal.Start(); Assert.IsTrue(gridionInternal.IsRunning, "Invalid gridion node state."); gridionInternal.Stop(); Assert.IsFalse(gridionInternal.IsRunning, "Invalid gridion node state."); } finally { if (gridionInternal != null) { gridionInternal.Dispose(); } } }
public void MultipleDefaultGridionStartWithConfigThrowsTest() { var configuration = new GridionConfiguration("127.0.0.1", 24000); GridionFactory.Start(configuration); Assert.ThrowsException <GridionException>(() => { GridionFactory.Start(configuration); }, "The expected exception hasn't been thrown."); }
/// <summary> /// Validates <see cref="GridionConfiguration" /> instance. /// </summary> /// <param name="configuration"> /// The configuration to validate. /// </param> internal static void Validate(GridionConfiguration configuration) { Should.NotBeNull(configuration, nameof(configuration)); Should.NotBeNull(configuration.NodeName, nameof(configuration.NodeName)); Should.NotBeNull(configuration.ServerConfiguration, nameof(configuration.ServerConfiguration)); ServerConfigurationValidator.Validate(configuration.ServerConfiguration); }
/// <summary> /// Initializes a new instance of the <see cref="GridionInternal" /> class. /// </summary> /// <param name="configuration"> /// The configuration of <see cref="IGridion" /> instance. /// </param> /// <param name="curator"> /// The cluster curator. /// </param> internal GridionInternal(GridionConfiguration configuration, IClusterCurator curator) { GridionConfigurationValidator.Validate(configuration); this.configuration = configuration; this.node = new Node( configuration.ServerConfiguration, curator, new ConsoleLogger()); }
public void MultipleGridionStartTest() { var configuration1 = new GridionConfiguration("127.0.0.1", 24000); var gridion1 = GridionFactory.Start(configuration1); var configuration2 = new GridionConfiguration("127.0.0.1", 24001); var gridion2 = GridionFactory.Start(configuration2); Assert.IsTrue(gridion1.Name.StartsWith("[Gridion] Node - {", StringComparison.InvariantCulture), "Gridion name is incorrect."); Assert.IsTrue(gridion2.Name.StartsWith("[Gridion] Node - {", StringComparison.InvariantCulture), "Gridion name is incorrect."); Assert.AreNotEqual(gridion1.Name, gridion2.Name, "Gridion names are the same."); }
/// <summary> /// Starts a new <see cref="IGridion" /> instance. /// </summary> /// <param name="configuration"> /// The <see cref="IGridion" /> configuration. /// </param> /// <returns> /// a started <see cref="IGridion" /> instance. /// </returns> public static IGridion Start(GridionConfiguration configuration) { Should.NotBeNull(configuration, nameof(configuration)); lock (GridionList) { #pragma warning disable CA2000 // Dispose objects before losing scope var instance = new GridionInternal(configuration, ClusterCurator.Instance); #pragma warning restore CA2000 // Dispose objects before losing scope instance.Start(); GridionList.Add(instance); return(instance); } }
public void GroupNodesTest() { var cfg1 = new GridionConfiguration("node1", GridionEndpoint.GetDefault().Host, GridionEndpoint.GetDefault().Port); var cfg2 = new GridionConfiguration("node2", GridionEndpoint.GetDefault().Host, GridionEndpoint.GetDefault().Port + 1); using (var gridion = GridionFactory.Start(cfg1)) { Assert.AreEqual(1, gridion.Cluster.Nodes.Count); using (var gridion2 = GridionFactory.Start(cfg2)) { Assert.AreEqual(2, gridion.Cluster.Nodes.Count); Assert.AreEqual(2, gridion2.Cluster.Nodes.Count); } Assert.AreEqual(1, gridion.Cluster.Nodes.Count); } }
public void DistributedObjectsNumberTest2() { var configuration1 = new GridionConfiguration("node1", "127.0.0.1", 24000); var configuration2 = new GridionConfiguration("node2", "127.0.0.1", 24001); using (var gridion1 = GridionFactory.Start(configuration1)) { using (var gridion2 = GridionFactory.Start(configuration2)) { // add a dict gridion1.GetDictionary <string, int>("testDictionary1"); // get a dict gridion2.GetDictionary <string, int>("testDictionary1"); Assert.AreEqual(1, ClusterCurator.Instance.NumberOfDistributedCollections); } } }
public void GridionStopAllTest() { GridionFactory.ResetDisposedInstanceNumber(); var configuration1 = new GridionConfiguration("127.0.0.1", 24000); var configuration2 = new GridionConfiguration("127.0.0.1", 24001); using (GridionFactory.Start(configuration1)) { using (GridionFactory.Start(configuration2)) { Assert.AreEqual(2, GridionFactory.GetAll().Count, "Invalid instance count."); GridionFactory.StopAll(); Assert.AreEqual(0, GridionFactory.GetAll().Count, "Invalid instance count."); Assert.AreEqual(2, GridionFactory.GetDisposedInstanceNumber(), "Invalid instance count."); } } }
public void DistributedListTest2Nodes() { var configuration = new GridionConfiguration("127.0.0.1", 24000); var configuration2 = new GridionConfiguration("127.0.0.1", 24001); using (var gridion = GridionFactory.Start(configuration)) { using (var gridion2 = GridionFactory.Start(configuration2)) { IDistributedList <string> list = gridion.GetList <string>("name"); Assert.IsNotNull(list, "list != null"); Assert.AreEqual("name", list.Name, "The name is incorrect."); IDistributedList <string> list2 = gridion2.GetList <string>("name"); Assert.IsNotNull(list2, "dictionary != null"); Assert.AreEqual("name", list2.Name, "The name is incorrect."); } } }
public void DistributedDictionaryTest2Nodes() { var configuration = new GridionConfiguration("127.0.0.1", 24000); var configuration2 = new GridionConfiguration("127.0.0.1", 24001); using (var gridion = GridionFactory.Start(configuration)) { using (var gridion2 = GridionFactory.Start(configuration2)) { IDistributedDictionary <string, object> dictionary = gridion.GetDictionary <string, object>("name"); Assert.IsNotNull(dictionary, "dictionary != null"); Assert.AreEqual("name", dictionary.Name, "The name is incorrect."); IDistributedDictionary <string, object> dictionary2 = gridion2.GetDictionary <string, object>("name"); Assert.IsNotNull(dictionary2, "dictionary != null"); Assert.AreEqual("name", dictionary2.Name, "The name is incorrect."); } } }
public void DistributedQueueTest2Nodes() { var configuration = new GridionConfiguration("127.0.0.1", 24000); var configuration2 = new GridionConfiguration("127.0.0.1", 24001); using (var gridion = GridionFactory.Start(configuration)) { using (var gridion2 = GridionFactory.Start(configuration2)) { IDistributedQueue <string> queue = gridion.GetQueue <string>("name"); Assert.IsNotNull(queue, "queue != null"); Assert.AreEqual("name", queue.Name, "The name is incorrect."); IDistributedQueue <string> queue2 = gridion2.GetQueue <string>("name"); Assert.IsNotNull(queue2, "queue != null"); Assert.AreEqual("name", queue2.Name, "The name is incorrect."); } } }
/// <summary> /// Starts a new <see cref="IGridion" /> default instance. /// </summary> /// <returns> /// a started <see cref="IGridion" /> instance. /// </returns> public static IGridion Start() { var configuration = GridionConfiguration.GetDefaultConfiguration(); return(Start(configuration)); }