aboutsummaryrefslogtreecommitdiffstats
path: root/ui-react/src/components/dialogs/Tosca
diff options
context:
space:
mode:
authordrveerendra <vrajasekharaiah@att.com>2019-11-11 19:37:39 -0500
committerdrveerendra <vrajasekharaiah@att.com>2019-11-18 20:08:46 -0500
commit684057e69bea57d0bd954a84a10581a81d546006 (patch)
tree255f5d878c70862c009b320809d93a84b0436506 /ui-react/src/components/dialogs/Tosca
parent715f0ac873dd0301ed85e873a09d4323fef4d40e (diff)
Adding View BP template Menu
Adding View Blue Print templates option under Template menu. Adding few more test cases for ViewTosca Modals to cover the api calls. Issue-ID: CLAMP-544 Change-Id: Ibf881f46fd03e9149a88ccc211a996d99fd74748 Signed-off-by: drveerendra <vrajasekharaiah@att.com>
Diffstat (limited to 'ui-react/src/components/dialogs/Tosca')
-rw-r--r--ui-react/src/components/dialogs/Tosca/ViewBlueprintMicroServiceTemplatesModal.js154
-rw-r--r--ui-react/src/components/dialogs/Tosca/ViewBlueprintMicroServiceTemplatesModal.test.js193
-rw-r--r--ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.js154
-rw-r--r--ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.test.js195
-rw-r--r--ui-react/src/components/dialogs/Tosca/__snapshots__/ViewBlueprintMicroServiceTemplatesModal.test.js.snap163
-rw-r--r--ui-react/src/components/dialogs/Tosca/__snapshots__/ViewToscaPolicyModal.test.js.snap163
6 files changed, 1022 insertions, 0 deletions
diff --git a/ui-react/src/components/dialogs/Tosca/ViewBlueprintMicroServiceTemplatesModal.js b/ui-react/src/components/dialogs/Tosca/ViewBlueprintMicroServiceTemplatesModal.js
new file mode 100644
index 000000000..adacbc8c6
--- /dev/null
+++ b/ui-react/src/components/dialogs/Tosca/ViewBlueprintMicroServiceTemplatesModal.js
@@ -0,0 +1,154 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+import React, { forwardRef } from 'react'
+import Button from 'react-bootstrap/Button';
+import Modal from 'react-bootstrap/Modal';
+import styled from 'styled-components';
+import TemplateMenuService from '../../../api/TemplateMenuService';
+import ArrowUpward from '@material-ui/icons/ArrowUpward';
+import ChevronLeft from '@material-ui/icons/ChevronLeft';
+import ChevronRight from '@material-ui/icons/ChevronRight';
+import Clear from '@material-ui/icons/Clear';
+import FirstPage from '@material-ui/icons/FirstPage';
+import LastPage from '@material-ui/icons/LastPage';
+import Search from '@material-ui/icons/Search';
+import MaterialTable from "material-table";
+
+const ModalStyled = styled(Modal)`
+ background-color: transparent;
+`
+const TextModal = styled.textarea`
+margin-top: 20px;
+white-space:pre;
+background-color: ${props => props.theme.toscaTextareaBackgroundColor};;
+text-align: justify;
+font-size: ${props => props.theme.toscaTextareaFontSize};;
+width: 100%;
+height: 300px;
+`
+const cellStyle = { border: '1px solid black' };
+const headerStyle = { backgroundColor: '#ddd', border: '2px solid black' };
+const rowHeaderStyle = {backgroundColor:'#ddd', fontSize: '15pt', text: 'bold', border: '1px solid black'};
+
+export default class ViewBlueprintMicroServiceTemplatesModal extends React.Component {
+ state = {
+ show: true,
+ content: 'Please select Blue print template to view the details',
+ selectedRow: -1,
+ bpTemplNames: [],
+ bpTemplColumns: [
+ { title: "#", field: "index", render: rowData => rowData.tableData.id + 1,
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Template Name", field: "templateName",
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Policy Model", field: "templatePolicy[0].policyModelId",
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Template ID", field: "templateId",
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Uploaded By", field: "updatedBy",
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Uploaded Date", field: "timestamp", editable: 'never',
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ }
+ ],
+ tableIcons: {
+ FirstPage: forwardRef((props, ref) => <FirstPage {...props} ref={ref} />),
+ LastPage: forwardRef((props, ref) => <LastPage {...props} ref={ref} />),
+ NextPage: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
+ PreviousPage: forwardRef((props, ref) => <ChevronLeft {...props} ref={ref} />),
+ ResetSearch: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
+ Search: forwardRef((props, ref) => <Search {...props} ref={ref} />),
+ SortArrow: forwardRef((props, ref) => <ArrowUpward {...props} ref={ref} />)
+ }
+ };
+
+ constructor(props, context) {
+ super(props, context);
+ this.handleClose = this.handleClose.bind(this);
+ this.getBlueprintMicroServiceTemplates = this.getBlueprintMicroServiceTemplates.bind(this);
+ this.handleYamlContent = this.handleYamlContent.bind(this);
+ }
+
+ componentWillMount() {
+ this.getBlueprintMicroServiceTemplates();
+ }
+
+ getBlueprintMicroServiceTemplates() {
+ TemplateMenuService.getBlueprintMicroServiceTemplates().then(bpTemplNames => {
+ this.setState({ bpTemplNames: bpTemplNames })
+ });
+ }
+
+ handleYamlContent = event => {
+ this.setState({
+ content: event.target.value
+ });
+ }
+
+ handleClose() {
+ this.setState({ show: false });
+ this.props.history.push('/')
+ }
+
+ render() {
+ return (
+ <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose}>
+ <Modal.Header closeButton>
+ </Modal.Header>
+ <Modal.Body>
+ <MaterialTable
+ title={"View Blueprint MicroService Templates"}
+ data={this.state.bpTemplNames}
+ columns={this.state.bpTemplColumns}
+ icons={this.state.tableIcons}
+ onRowClick={(event, rowData) => {this.setState({content: rowData.templateYaml, selectedRow: rowData.tableData.id})}}
+ options={{
+ headerStyle:rowHeaderStyle,
+ rowStyle: rowData => ({
+ backgroundColor: (this.state.selectedRow !== -1 && this.state.selectedRow === rowData.tableData.id) ? '#EEE' : '#FFF'
+ })
+ }}
+ />
+ <div>
+ <TextModal value={this.state.content} onChange={this.handleYamlContent} />
+ </div>
+ </Modal.Body>
+ <Modal.Footer>
+ <Button variant="secondary" onClick={this.handleClose}>Close</Button>
+ </Modal.Footer>
+ </ModalStyled>
+ );
+ }
+ }
diff --git a/ui-react/src/components/dialogs/Tosca/ViewBlueprintMicroServiceTemplatesModal.test.js b/ui-react/src/components/dialogs/Tosca/ViewBlueprintMicroServiceTemplatesModal.test.js
new file mode 100644
index 000000000..4a8d9c3ff
--- /dev/null
+++ b/ui-react/src/components/dialogs/Tosca/ViewBlueprintMicroServiceTemplatesModal.test.js
@@ -0,0 +1,193 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+import React from 'react';
+import { shallow } from 'enzyme';
+import ViewBlueprintMicroServiceTemplatesModal from './ViewBlueprintMicroServiceTemplatesModal';
+import { mount } from 'enzyme';
+
+describe('Verify ViewBlueprintMicroServiceTemplatesModal', () => {
+ beforeEach(() => {
+ fetch.resetMocks();
+ }
+ );
+
+ it('Test API Successful', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "content": "MTCA version 1",
+ "templateName": "MTCA",
+ "templatePolicy.policyModelId" : "onap.policies.monitoring.docker.mtca.app",
+ "updatedBy":"tester",
+ "templateId":"aaaa_bbbb_cccc",
+ "timestamp":"2019-09-06 19:09:42"
+ });
+ }
+ });
+ });
+ const component = shallow(<ViewBlueprintMicroServiceTemplatesModal/>);
+ });
+
+ it('Test API Exception', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: false,
+ status: 500,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "content": "MTCA version 1",
+ "templateName": "MTCA",
+ "templatePolicy.policyModelId" : "onap.policies.monitoring.docker.mtca.app",
+ "updatedBy":"tester",
+ "templateId":"aaaa_bbbb_cccc",
+ "timestamp":"2019-09-06 19:09:42"
+ });
+ }
+ });
+ });
+ const component = shallow(<ViewBlueprintMicroServiceTemplatesModal/>);
+ });
+
+ it('Test API Rejection', () => {
+ const myMockFunc = fetch.mockImplementationOnce(() => Promise.reject('error'));
+ setTimeout( () => myMockFunc().catch(e => {
+ console.log(e);
+ }),
+ 100
+ );
+ new Promise(resolve => setTimeout(resolve, 200));
+ const component = shallow(<ViewBlueprintMicroServiceTemplatesModal/>);
+ expect(myMockFunc.mock.calls.length).toBe(1);
+ });
+
+ it('Test the tosca model view render method', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "content": "MTCA version 1",
+ "templateName": "MTCA",
+ "templatePolicy.policyModelId" : "onap.policies.monitoring.docker.mtca.app",
+ "updatedBy":"tester",
+ "templateId":"aaaa_bbbb_cccc",
+ "timestamp":"2019-09-06 19:09:42"
+ });
+ }
+ });
+ });
+ const component = shallow(<ViewBlueprintMicroServiceTemplatesModal/>);
+ component.setState({ bpTemplNames: {
+ "index": "1",
+ "content": "MTCA version 1",
+ "templateName": "MTCA",
+ "templatePolicy.policyModelId" : "onap.policies.monitoring.docker.mtca.app",
+ "updatedBy":"tester",
+ "templateId":"aaaa_bbbb_cccc",
+ "timestamp":"2019-09-06 19:09:42"
+ }
+ });
+ expect(component).toMatchSnapshot();
+ });
+
+ it('Test Table icons', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "content": "MTCA version 1",
+ "templateName": "MTCA",
+ "templatePolicy.policyModelId" : "onap.policies.monitoring.docker.mtca.app",
+ "updatedBy":"tester",
+ "templateId":"aaaa_bbbb_cccc",
+ "timestamp":"2019-09-06 19:09:42"
+ });
+ }
+ });
+ });
+ const component = mount(<ViewBlueprintMicroServiceTemplatesModal/>);
+ expect(component.find('[className="MuiSelect-icon MuiTablePagination-selectIcon"]')).toBeTruthy();
+ });
+
+ it('Test handleYamlContent', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "content": "MTCA version 1",
+ "templateName": "MTCA",
+ "templatePolicy.policyModelId" : "onap.policies.monitoring.docker.mtca.app",
+ "updatedBy":"tester",
+ "templateId":"aaaa_bbbb_cccc",
+ "timestamp":"2019-09-06 19:09:42"
+ });
+ }
+ });
+ });
+ const yamlContent = 'MTCA Tosca model details';
+ const component = shallow(<ViewBlueprintMicroServiceTemplatesModal/>);
+ component.find('[value="Please select Blue print template to view the details"]').prop('onChange')({ target: { value: yamlContent }});
+ expect(component.state('content')).toEqual(yamlContent);
+ });
+
+ it('Test handleClose', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "content": "MTCA version 1",
+ "templateName": "MTCA",
+ "templatePolicy.policyModelId" : "onap.policies.monitoring.docker.mtca.app",
+ "updatedBy":"tester",
+ "templateId":"aaaa_bbbb_cccc",
+ "timestamp":"2019-09-06 19:09:42"
+ });
+ }
+ });
+ });
+ const historyMock = { push: jest.fn() };
+ const handleClose = jest.spyOn(ViewBlueprintMicroServiceTemplatesModal.prototype,'handleClose');
+ const component = shallow(<ViewBlueprintMicroServiceTemplatesModal history={historyMock} />)
+ component.find('[variant="secondary"]').prop('onClick')();
+ expect(handleClose).toHaveBeenCalledTimes(1);
+ expect(component.state('show')).toEqual(false);
+ expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+ handleClose.mockClear();
+ });
+ }); \ No newline at end of file
diff --git a/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.js b/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.js
new file mode 100644
index 000000000..6a93d4d98
--- /dev/null
+++ b/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.js
@@ -0,0 +1,154 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+import React, { forwardRef } from 'react'
+import MaterialTable from "material-table";
+import Button from 'react-bootstrap/Button';
+import Modal from 'react-bootstrap/Modal';
+import styled from 'styled-components';
+import TemplateMenuService from '../../../api/TemplateMenuService';
+import ArrowUpward from '@material-ui/icons/ArrowUpward';
+import ChevronLeft from '@material-ui/icons/ChevronLeft';
+import ChevronRight from '@material-ui/icons/ChevronRight';
+import Clear from '@material-ui/icons/Clear';
+import FirstPage from '@material-ui/icons/FirstPage';
+import LastPage from '@material-ui/icons/LastPage';
+import Search from '@material-ui/icons/Search';
+
+
+const ModalStyled = styled(Modal)`
+ background-color: transparent;
+`
+const TextModal = styled.textarea`
+ margin-top: 20px;
+ white-space:pre;
+ background-color: ${props => props.theme.toscaTextareaBackgroundColor};
+ text-align: justify;
+ font-size: ${props => props.theme.toscaTextareaFontSize};
+ width: 100%;
+ height: 300px;
+`
+const cellStyle = { border: '1px solid black' };
+const headerStyle = { backgroundColor: '#ddd', border: '2px solid black' };
+const rowHeaderStyle = {backgroundColor:'#ddd', fontSize: '15pt', text: 'bold', border: '1px solid black'};
+
+export default class ViewToscalPolicyModal extends React.Component {
+
+ state = {
+ show: true,
+ content: 'Please select Tosca model to view the details',
+ selectedRow: -1,
+ toscaNames: [],
+ toscaColumns: [
+ { title: "#", field: "index", render: rowData => rowData.tableData.id + 1,
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Micro Service Name", field: "toscaModelName",
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "PolicyType", field: "policyType",
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Version", field: "toscaModelRevisions[0].version",
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Uploaded By", field: "userId",
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ },
+ { title: "Uploaded Date", field: "lastUpdatedDate", editable: 'never',
+ cellStyle: cellStyle,
+ headerStyle: headerStyle
+ }
+ ],
+ tableIcons: {
+ FirstPage: forwardRef((props, ref) => <FirstPage {...props} ref={ref} />),
+ LastPage: forwardRef((props, ref) => <LastPage {...props} ref={ref} />),
+ NextPage: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
+ PreviousPage: forwardRef((props, ref) => <ChevronLeft {...props} ref={ref} />),
+ ResetSearch: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
+ Search: forwardRef((props, ref) => <Search {...props} ref={ref} />),
+ SortArrow: forwardRef((props, ref) => <ArrowUpward {...props} ref={ref} />)
+ }
+ };
+
+ constructor(props, context) {
+ super(props, context);
+ this.handleClose = this.handleClose.bind(this);
+ this.getPolicyToscaModels = this.getToscaPolicyModels.bind(this);
+ this.handleYamlContent = this.handleYamlContent.bind(this);
+ }
+
+ componentWillMount() {
+ this.getToscaPolicyModels();
+ }
+
+ getToscaPolicyModels() {
+ TemplateMenuService.getToscaPolicyModels().then(toscaNames => {
+ this.setState({ toscaNames: toscaNames });
+ });
+ }
+
+ handleYamlContent(event) {
+ this.setState({ content: event.target.value });
+ }
+
+ handleClose() {
+ this.setState({ show: false });
+ this.props.history.push('/');
+ }
+
+ render() {
+ return (
+ <ModalStyled size="xl" show={this.state.show} onHide={this.handleClose}>
+ <Modal.Header closeButton>
+ </Modal.Header>
+ <Modal.Body>
+ <MaterialTable
+ title={"View Tosca Policy Models"}
+ data={this.state.toscaNames}
+ columns={this.state.toscaColumns}
+ icons={this.state.tableIcons}
+ onRowClick={(event, rowData) => {this.setState({content: rowData.toscaModelRevisions[0].toscaModelYaml, selectedRow: rowData.tableData.id})}}
+ options={{
+ headerStyle: rowHeaderStyle,
+ rowStyle: rowData => ({
+ backgroundColor: (this.state.selectedRow !== -1 && this.state.selectedRow === rowData.tableData.id) ? '#EEE' : '#FFF'
+ })
+ }}
+ />
+ <div>
+ <TextModal value={this.state.content} onChange={this.handleYamlContent}/>
+ </div>
+ </Modal.Body>
+ <Modal.Footer>
+ <Button variant="secondary" onClick={this.handleClose}>Close</Button>
+ </Modal.Footer>
+ </ModalStyled>
+ );
+ }
+}
diff --git a/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.test.js b/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.test.js
new file mode 100644
index 000000000..1445e8863
--- /dev/null
+++ b/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.test.js
@@ -0,0 +1,195 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+import React from 'react';
+import { shallow } from 'enzyme';
+import ViewToscaPolicyModal from './ViewToscaPolicyModal';
+import { mount } from 'enzyme';
+
+
+describe('Verify ViewToscaPolicyModal', () => {
+ beforeEach(() => {
+ fetch.resetMocks();
+ });
+
+ it('Test API Successful', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "toscaModelYaml":"MTCA",
+ "toscaModelName":"DCAE_MTCAConfig",
+ "version":"16",
+ "userId":"aj928f",
+ "policyType":"mtca",
+ "lastUpdatedDate":"05-07-2019 19:09:42"
+ });
+ }
+ });
+ });
+ const component = shallow(<ViewToscaPolicyModal/>);
+ });
+
+ it('Test API Exception', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: false,
+ status: 500,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "toscaModelName":"DCAE_MTCAConfig",
+ "version":"16",
+ "userId":"aj928f",
+ "policyType":"mtca",
+ "lastUpdatedDate":"05-07-2019 19:09:42"
+ });
+ }
+ });
+ });
+ const component = shallow(<ViewToscaPolicyModal/>);
+ });
+
+ it('Test API Rejection', () => {
+ const myMockFunc = fetch.mockImplementationOnce(() => Promise.reject('error'));
+ setTimeout(
+ () =>
+ myMockFunc().catch(e => {
+ console.log(e);
+ }),
+ 100
+ );
+ new Promise(resolve => setTimeout(resolve, 200));
+ const component = shallow(<ViewToscaPolicyModal/>);
+ expect(myMockFunc.mock.calls.length).toBe(1);
+ });
+
+
+ it('Test the tosca model view render method', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "toscaModelYaml":"MTCA",
+ "toscaModelName":"DCAE_MTCAConfig",
+ "version":"16",
+ "userId":"aj928f",
+ "policyType":"mtca",
+ "lastUpdatedDate":"05-07-2019 19:09:42"
+ });
+ }
+ });
+ });
+ const component = shallow(<ViewToscaPolicyModal/>);
+ component.setState({ toscaNames: {
+ "index": "1",
+ "toscaModelYaml": "MTCA",
+ "toscaModelName": "DCAE_MTCAConfig",
+ "version" : "16",
+ "userId" : "aj928f",
+ "policyType" : "mtca",
+ "lastUpdatedDate" : "05-07-2019 19:09:42"
+ }
+ });
+ expect(component).toMatchSnapshot();
+ });
+
+ it('Test Table icons', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "toscaModelYaml":"MTCA",
+ "toscaModelName":"DCAE_MTCAConfig",
+ "version":"16",
+ "userId":"aj928f",
+ "policyType":"mtca",
+ "lastUpdatedDate":"05-07-2019 19:09:42"
+ });
+ }
+ });
+ });
+ const component = mount(<ViewToscaPolicyModal/>);
+ expect(component.find('[className="MuiSelect-icon MuiTablePagination-selectIcon"]')).toBeTruthy();
+ });
+
+ it('Test handleYamlContent', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "toscaModelYaml":"MTCA",
+ "toscaModelName":"DCAE_MTCAConfig",
+ "version":"16",
+ "userId":"aj928f",
+ "policyType":"mtca",
+ "lastUpdatedDate":"05-07-2019 19:09:42"
+ });
+ }
+ });
+ });
+ const yamlContent = 'MTCA Tosca model details';
+ const component = shallow(<ViewToscaPolicyModal/>);
+ component.find('[value="Please select Tosca model to view the details"]').prop('onChange')({ target: { value: yamlContent }});
+ expect(component.state('content')).toEqual(yamlContent);
+ });
+
+ it('Test handleClose', () => {
+ fetch.mockImplementationOnce(() => {
+ return Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "index": "1",
+ "toscaModelYaml":"MTCA",
+ "toscaModelName":"DCAE_MTCAConfig",
+ "version":"16",
+ "userId":"aj928f",
+ "policyType":"mtca",
+ "lastUpdatedDate":"05-07-2019 19:09:42"
+ });
+ }
+ });
+ });
+ const historyMock = { push: jest.fn() };
+ const handleClose = jest.spyOn(ViewToscaPolicyModal.prototype,'handleClose');
+ const component = shallow(<ViewToscaPolicyModal history={historyMock} />)
+ component.find('[variant="secondary"]').prop('onClick')();
+ expect(handleClose).toHaveBeenCalledTimes(1);
+ expect(component.state('show')).toEqual(false);
+ expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+ handleClose.mockClear();
+ });
+}); \ No newline at end of file
diff --git a/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewBlueprintMicroServiceTemplatesModal.test.js.snap b/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewBlueprintMicroServiceTemplatesModal.test.js.snap
new file mode 100644
index 000000000..7dd4ee0d9
--- /dev/null
+++ b/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewBlueprintMicroServiceTemplatesModal.test.js.snap
@@ -0,0 +1,163 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Verify ViewBlueprintMicroServiceTemplatesModal Test the tosca model view render method 1`] = `
+<Styled(Bootstrap(Modal))
+ onHide={[Function]}
+ show={true}
+ size="xl"
+>
+ <ModalHeader
+ closeButton={true}
+ closeLabel="Close"
+ />
+ <ModalBody>
+ <WithStyles(Component)
+ columns={
+ Array [
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "index",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "render": [Function],
+ "title": "#",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "templateName",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Template Name",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "templatePolicy[0].policyModelId",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Policy Model",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "templateId",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Template ID",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "updatedBy",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Uploaded By",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "editable": "never",
+ "field": "timestamp",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Uploaded Date",
+ },
+ ]
+ }
+ data={
+ Object {
+ "content": "MTCA version 1",
+ "index": "1",
+ "templateId": "aaaa_bbbb_cccc",
+ "templateName": "MTCA",
+ "templatePolicy.policyModelId": "onap.policies.monitoring.docker.mtca.app",
+ "timestamp": "2019-09-06 19:09:42",
+ "updatedBy": "tester",
+ }
+ }
+ icons={
+ Object {
+ "FirstPage": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "LastPage": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "NextPage": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "PreviousPage": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "ResetSearch": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "Search": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "SortArrow": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ }
+ }
+ onRowClick={[Function]}
+ options={
+ Object {
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "1px solid black",
+ "fontSize": "15pt",
+ "text": "bold",
+ },
+ "rowStyle": [Function],
+ }
+ }
+ title="View Blueprint MicroService Templates"
+ />
+ <div>
+ <styled.textarea
+ onChange={[Function]}
+ value="Please select Blue print template to view the details"
+ />
+ </div>
+ </ModalBody>
+ <ModalFooter>
+ <Button
+ active={false}
+ disabled={false}
+ onClick={[Function]}
+ type="button"
+ variant="secondary"
+ >
+ Close
+ </Button>
+ </ModalFooter>
+</Styled(Bootstrap(Modal))>
+`;
diff --git a/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewToscaPolicyModal.test.js.snap b/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewToscaPolicyModal.test.js.snap
new file mode 100644
index 000000000..e7294c080
--- /dev/null
+++ b/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewToscaPolicyModal.test.js.snap
@@ -0,0 +1,163 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Verify ViewToscaPolicyModal Test the tosca model view render method 1`] = `
+<Styled(Bootstrap(Modal))
+ onHide={[Function]}
+ show={true}
+ size="xl"
+>
+ <ModalHeader
+ closeButton={true}
+ closeLabel="Close"
+ />
+ <ModalBody>
+ <WithStyles(Component)
+ columns={
+ Array [
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "index",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "render": [Function],
+ "title": "#",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "toscaModelName",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Micro Service Name",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "policyType",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "PolicyType",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "toscaModelRevisions[0].version",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Version",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "field": "userId",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Uploaded By",
+ },
+ Object {
+ "cellStyle": Object {
+ "border": "1px solid black",
+ },
+ "editable": "never",
+ "field": "lastUpdatedDate",
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "2px solid black",
+ },
+ "title": "Uploaded Date",
+ },
+ ]
+ }
+ data={
+ Object {
+ "index": "1",
+ "lastUpdatedDate": "05-07-2019 19:09:42",
+ "policyType": "mtca",
+ "toscaModelName": "DCAE_MTCAConfig",
+ "toscaModelYaml": "MTCA",
+ "userId": "aj928f",
+ "version": "16",
+ }
+ }
+ icons={
+ Object {
+ "FirstPage": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "LastPage": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "NextPage": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "PreviousPage": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "ResetSearch": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "Search": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ "SortArrow": Object {
+ "$$typeof": Symbol(react.forward_ref),
+ "render": [Function],
+ },
+ }
+ }
+ onRowClick={[Function]}
+ options={
+ Object {
+ "headerStyle": Object {
+ "backgroundColor": "#ddd",
+ "border": "1px solid black",
+ "fontSize": "15pt",
+ "text": "bold",
+ },
+ "rowStyle": [Function],
+ }
+ }
+ title="View Tosca Policy Models"
+ />
+ <div>
+ <styled.textarea
+ onChange={[Function]}
+ value="Please select Tosca model to view the details"
+ />
+ </div>
+ </ModalBody>
+ <ModalFooter>
+ <Button
+ active={false}
+ disabled={false}
+ onClick={[Function]}
+ type="button"
+ variant="secondary"
+ >
+ Close
+ </Button>
+ </ModalFooter>
+</Styled(Bootstrap(Modal))>
+`;