def test_load_table_resources_relationships(neo4j_session): # Create Test Azure Database Account cosmosdb.load_database_account_data( neo4j_session, TEST_SUBSCRIPTION_ID, DESCRIBE_DATABASE_ACCOUNTS, TEST_UPDATE_TAG, ) cosmosdb._load_table_resources( neo4j_session, DESCRIBE_TABLE_RESOURCES, TEST_UPDATE_TAG, ) expected = { ( da1, da1 + "/tables/table1", ), ( da2, da2 + "/tables/table2", ), } # Fetch relationships result = neo4j_session.run( """ MATCH (n1:AzureCosmosDBAccount)-[:CONTAINS]->(n2:AzureCosmosDBTableResource) RETURN n1.id, n2.id; """, ) actual = {(r['n1.id'], r['n2.id']) for r in result} assert actual == expected
def test_load_cassandra_keyspaces_relationships(neo4j_session): # Create Test Azure Database Account cosmosdb.load_database_account_data( neo4j_session, TEST_SUBSCRIPTION_ID, DESCRIBE_DATABASE_ACCOUNTS, TEST_UPDATE_TAG, ) cosmosdb._load_cassandra_keyspaces( neo4j_session, DESCRIBE_CASSANDRA_KEYSPACES, TEST_UPDATE_TAG, ) expected = { ( da1, da1 + "/cassandraKeyspaces/cass_ks1", ), ( da2, da2 + "/cassandraKeyspaces/cass_ks2", ), } # Fetch relationships result = neo4j_session.run( """ MATCH (n1:AzureCosmosDBAccount)-[:CONTAINS]->(n2:AzureCosmosDBCassandraKeyspace) RETURN n1.id, n2.id; """, ) actual = {(r['n1.id'], r['n2.id']) for r in result} assert actual == expected
def test_load_database_account_data(neo4j_session): cosmosdb.load_database_account_data( neo4j_session, TEST_SUBSCRIPTION_ID, DESCRIBE_DATABASE_ACCOUNTS, TEST_UPDATE_TAG, ) expected_nodes = { da1, da2, } nodes = neo4j_session.run( """ MATCH (r:AzureCosmosDBAccount) RETURN r.id; """, ) actual_nodes = {n['r.id'] for n in nodes} assert actual_nodes == expected_nodes
def test_load_database_account_associated_locations_relationships( neo4j_session): # Create Test Azure Database Account cosmosdb.load_database_account_data( neo4j_session, TEST_SUBSCRIPTION_ID, DESCRIBE_DATABASE_ACCOUNTS, TEST_UPDATE_TAG, ) for database_account in DESCRIBE_DATABASE_ACCOUNTS: cosmosdb._load_database_account_associated_locations( neo4j_session, database_account, TEST_UPDATE_TAG, ) expected = { ( da1, "DA1-eastus", ), ( da1, "DA1-centralindia", ), ( da1, "DA1-japaneast", ), } # Fetch relationships result = neo4j_session.run( """ MATCH (n1:AzureCosmosDBAccount)-[:ASSOCIATED_WITH]->(n2:AzureCosmosDBLocation) RETURN n1.id, n2.id; """, ) actual = {(r['n1.id'], r['n2.id']) for r in result} assert actual == expected
def test_load_database_account_data_relationships(neo4j_session): # Create Test Azure Subscription neo4j_session.run( """ MERGE (as:AzureSubscription{id: {subscription_id}}) ON CREATE SET as.firstseen = timestamp() SET as.lastupdated = {update_tag} """, subscription_id=TEST_SUBSCRIPTION_ID, update_tag=TEST_UPDATE_TAG, ) cosmosdb.load_database_account_data( neo4j_session, TEST_SUBSCRIPTION_ID, DESCRIBE_DATABASE_ACCOUNTS, TEST_UPDATE_TAG, ) expected = { ( TEST_SUBSCRIPTION_ID, da1, ), ( TEST_SUBSCRIPTION_ID, da2, ), } # Fetch relationships result = neo4j_session.run( """ MATCH (n1:AzureSubscription)-[:RESOURCE]->(n2:AzureCosmosDBAccount) RETURN n1.id, n2.id; """, ) actual = {(r['n1.id'], r['n2.id']) for r in result} assert actual == expected
def test_load_cosmosdb_private_endpoint_connections_relationships( neo4j_session): # Create Test Azure Database Account cosmosdb.load_database_account_data( neo4j_session, TEST_SUBSCRIPTION_ID, DESCRIBE_DATABASE_ACCOUNTS, TEST_UPDATE_TAG, ) for database_account in DESCRIBE_DATABASE_ACCOUNTS: cosmosdb._load_cosmosdb_private_endpoint_connections( neo4j_session, database_account, TEST_UPDATE_TAG, ) expected = { ( da1, da1 + "/privateEndpointConnections/pe1", ), ( da2, da2 + "/privateEndpointConnections/pe2", ), } # Fetch relationships result = neo4j_session.run( """ MATCH (n1:AzureCosmosDBAccount)-[:CONFIGURED_WITH]->(n2:AzureCDBPrivateEndpointConnection) RETURN n1.id, n2.id; """, ) actual = {(r['n1.id'], r['n2.id']) for r in result} assert actual == expected
def test_load_cosmosdb_virtual_network_rules_relationships(neo4j_session): # Create Test Azure Database Account cosmosdb.load_database_account_data( neo4j_session, TEST_SUBSCRIPTION_ID, DESCRIBE_DATABASE_ACCOUNTS, TEST_UPDATE_TAG, ) for database_account in DESCRIBE_DATABASE_ACCOUNTS: cosmosdb._load_cosmosdb_virtual_network_rules( neo4j_session, database_account, TEST_UPDATE_TAG, ) expected = { ( da1, rg + "/providers/Microsoft.Network/virtualNetworks/vn1", ), ( da2, rg + "/providers/Microsoft.Network/virtualNetworks/vn2", ), } # Fetch relationships result = neo4j_session.run( """ MATCH (n1:AzureCosmosDBAccount)-[:CONFIGURED_WITH]->(n2:AzureCosmosDBVirtualNetworkRule) RETURN n1.id, n2.id; """, ) actual = {(r['n1.id'], r['n2.id']) for r in result} assert actual == expected
def test_load_cosmosdb_failover_policies_relationships(neo4j_session): # Create Test Azure Database Account cosmosdb.load_database_account_data( neo4j_session, TEST_SUBSCRIPTION_ID, DESCRIBE_DATABASE_ACCOUNTS, TEST_UPDATE_TAG, ) for database_account in DESCRIBE_DATABASE_ACCOUNTS: cosmosdb._load_cosmosdb_failover_policies( neo4j_session, database_account, TEST_UPDATE_TAG, ) expected = { ( da1, "DA1-eastus", ), ( da2, "DA2-eastus", ), } # Fetch relationships result = neo4j_session.run( """ MATCH (n1:AzureCosmosDBAccount)-[:CONTAINS]->(n2:AzureCosmosDBAccountFailoverPolicy) RETURN n1.id, n2.id; """, ) actual = {(r['n1.id'], r['n2.id']) for r in result} assert actual == expected